如果用户输入是一个空行,需要帮助打破循环吗

wlwcrazw  于 2021-06-30  发布在  Java
关注(0)|答案(4)|浏览(290)
import java.util.Scanner;

    public class HighestTestAverage {
        public static void main(String[] args) {

            Scanner input = new Scanner(System.in);

            int i = 0;
            int scores = 0;
            int number_of = 0;
            int total = 0;
            double average = 0;
            double greatest_average = 0;
            String The_student;

            for (i = 1; i != 2; ) {

                System.out.print("Enter a student's name: ");

                String student_name = input.next();

                if(student_name.isEmpty()){
                    System.out.println(Breaking loop");
                }
    }

每当我试着在要求“输入学生姓名”的地方放一个空行时,它不会打印中断循环。我试过很多东西,但都不管用。我的一些变量用于代码的后面部分,因此目前它们是不必要的。

9cbw7uwe

9cbw7uwe1#

只有当student\u name为null时,方法isempty才变为true。空白不是空的,而是空白字符。要解决这个问题,请使用if(stuent\u name.equals(“”){。。。

chhkpiq4

chhkpiq42#

如果代替 input.next() 你用 input.nextLine() ,应该去,你想要一个无限循环?因为如果不是这样的话 while(true){}

kd3sttzy

kd3sttzy3#

使用 Scanner ,有两种方法:
选项1:使用 Scanner#nextLine :

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String studentName = "";
        do {
            System.out.print("Enter a student's name: ");
            studentName = input.nextLine();
        } while (!studentName.isBlank());
    }
}

示例运行:

Enter a student's name: Hello
Enter a student's name: World
Enter a student's name:

选项2:使用 Scanner#next 分隔符为 [\r\n] :

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        input.useDelimiter("[\r\n]");
        String studentName = "";
        do {
            System.out.print("Enter a student's name: ");
            studentName = input.next();
        } while (!studentName.isBlank());
    }
}

示例运行:

Enter a student's name: Hello
Enter a student's name: World
Enter a student's name:
yv5phkfx

yv5phkfx4#

你可以用 break 关键字,它将跳出for/white循环:

for (i = 1; i != 2; ) { 
  System.out.print("Enter a student's name: ");
  String student_name = input.next();
  if (student_name.isEmpty()) {
    break;
  }
}

为了更好地理解,请阅读 break 以及 continue .

相关问题