java - 在 Java 中跳过 For 循环中的迭代

标签 java loops for-loop

我的 for 循环跳到 2 年级要进入,我不明白为什么会这样。输出如下所示:

输入等级编号 1: 输入等级编号 2:

public static void main(String args[]){

    Scanner inputReader = new Scanner(System.in);
    System.out.print("Would you like to input grades?: ");
    String input = inputReader.next();

    if (input.equals("y")){
        String[] grades =new String[2];

        for (int counter = 0; counter < grades.length; counter++){
            System.out.print("Type in Grade Number " + (counter + 1) + ": ");
            grades[counter] = inputReader.nextLine();
        }
     }
}

最佳答案

next() 读取一个词,而不是整行,并且它不会丢弃该词之后的行,因此当您键入名字时,扫描器仍在等待一个理由消耗该行的其余部分。只有当你第一次调用 nextLine() 时它才会这样做(我假设该行的其余部分是空白的)

将您的代码更改为

    String lastName = inputReader.nextLine(); // read the whole line, not just a word
    System.out.print("Student First Name: ");
    String firstName = inputReader.nextLine();

关于java - 在 Java 中跳过 For 循环中的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083585/

相关文章:

javascript - 无法跳出 javascript for 循环

PHP For Loop 通过日期范围不起作用

java - 将段落分解为字符串标记

java - Hadoop安装目录

java字符编码

python - 向后循环,创建菱形图案

python - 我的变量在循环内部或外部发生变化

c# - for循环的这个输出是如何工作的?

C 编程 : Segmentation fault when reading numbers into a array

java - 如何将IMAGE尺寸调整到JPanel中