Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么程序跳过需要输入的名称_Java - Fatal编程技术网

Java 为什么程序跳过需要输入的名称

Java 为什么程序跳过需要输入的名称,java,Java,基本上,当你运行这个程序时,它会运行一次,然后在第二次迭代中,它会要求一个学生的名字。但它只会跳过用户应该在哪里输入,然后转到“获取ID”。如何停止该操作。在第一次迭代中,nextFloat()不使用任何新行字符。在第二次迭代中,nextLine()方法将使用第一次迭代留下的换行符。因此,第二次迭代中的nextLine()方法似乎跳过了用户输入,而它只是使用上一次迭代留下的换行符 解决此问题的一种方法是在nextFloat()之后调用nextLine()以使用剩余的新行字符。在第一次迭代中,ne

基本上,当你运行这个程序时,它会运行一次,然后在第二次迭代中,它会要求一个学生的名字。但它只会跳过用户应该在哪里输入,然后转到“获取ID”。如何停止该操作。

在第一次迭代中,
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();

它没有阻塞,因为它已随此字符提供。

请考虑在下次发布代码时只保留一点点空白。不必要的开放空间使代码有点难以阅读。记住,好的代码格式化对我们的好处比你的要多,但是既然我们能够给你更好的帮助,如果我们能够轻松地阅读和理解你的代码,那么它也对你有利。这个问题类似于考虑下一次只有少量空白的发布代码。不必要的开放空间使代码有点难以阅读。请记住,良好的代码格式对我们的好处大于对您的好处,但是如果我们能够轻松阅读和理解您的代码,那么我们可以为您提供更好的帮助,这对您也有好处