Java 为什么程序跳过需要输入的名称
基本上,当你运行这个程序时,它会运行一次,然后在第二次迭代中,它会要求一个学生的名字。但它只会跳过用户应该在哪里输入,然后转到“获取ID”。如何停止该操作。在第一次迭代中,Java 为什么程序跳过需要输入的名称,java,Java,基本上,当你运行这个程序时,它会运行一次,然后在第二次迭代中,它会要求一个学生的名字。但它只会跳过用户应该在哪里输入,然后转到“获取ID”。如何停止该操作。在第一次迭代中,nextFloat()不使用任何新行字符。在第二次迭代中,nextLine()方法将使用第一次迭代留下的换行符。因此,第二次迭代中的nextLine()方法似乎跳过了用户输入,而它只是使用上一次迭代留下的换行符 解决此问题的一种方法是在nextFloat()之后调用nextLine()以使用剩余的新行字符。在第一次迭代中,ne
nextFloat()
不使用任何新行字符。在第二次迭代中,nextLine()
方法将使用第一次迭代留下的换行符。因此,第二次迭代中的nextLine()
方法似乎跳过了用户输入,而它只是使用上一次迭代留下的换行符
解决此问题的一种方法是在
nextFloat()
之后调用nextLine()
以使用剩余的新行字符。在第一次迭代中,nextFloat()
不使用任何新行字符。在第二次迭代中,nextLine()
方法将使用第一次迭代留下的换行符。因此,第二次迭代中的nextLine()
方法似乎跳过了用户输入,而它只是使用上一次迭代留下的换行符
解决此问题的一种方法是在nextFloat()
之后调用nextLine()
,以使用剩余的新行字符。您可以放置
import java.util.Scanner;
public class ClassList {
static final int SIZE = 10;
public static void main(String Args[]) {
Student[] students = new Student[SIZE];
Scanner s = new Scanner(System.in);
String name, id;
float gpa;
do {
System.out.println("Enter a Student");
name = s.nextLine();
System.out.println("Enter a ID");
id = s.nextLine();
System.out.println("Enter a GPA");
gpa = s.nextFloat();
} while(!name.equals("quit"));
}
}
在循环结束时使用换行符。当前,Scanner.getFloat()
正在将换行符传递给语句:
s.nextLine();
它没有阻塞,因为它已随此字符提供。您可以放置
import java.util.Scanner;
public class ClassList {
static final int SIZE = 10;
public static void main(String Args[]) {
Student[] students = new Student[SIZE];
Scanner s = new Scanner(System.in);
String name, id;
float gpa;
do {
System.out.println("Enter a Student");
name = s.nextLine();
System.out.println("Enter a ID");
id = s.nextLine();
System.out.println("Enter a GPA");
gpa = s.nextFloat();
} while(!name.equals("quit"));
}
}
在循环结束时使用换行符。当前,Scanner.getFloat()
正在将换行符传递给语句:
s.nextLine();
它没有阻塞,因为它已随此字符提供。请考虑在下次发布代码时只保留一点点空白。不必要的开放空间使代码有点难以阅读。记住,好的代码格式化对我们的好处比你的要多,但是既然我们能够给你更好的帮助,如果我们能够轻松地阅读和理解你的代码,那么它也对你有利。这个问题类似于考虑下一次只有少量空白的发布代码。不必要的开放空间使代码有点难以阅读。请记住,良好的代码格式对我们的好处大于对您的好处,但是如果我们能够轻松阅读和理解您的代码,那么我们可以为您提供更好的帮助,这对您也有好处