java - 当没有条件语句时,为什么我的 for 循环会跳过我的扫描仪函数之一

标签 java

所以我正在编写这段代码,它应该根据输入计算用户 GPA,我已经制定了一种方法来询问用户一系列问题,我的目标是获得这样的输出

类(class) 1:

类:用户输入

是 AP:用户输入

成绩:用户输入

类(class) 2:

类:用户输入

是 AP:用户输入

成绩:用户输入

类(class) 3:

类:用户输入

是 AP:用户输入

成绩:用户输入

类(class) 4:

类:用户输入

是 AP:用户输入

成绩:用户输入

为此我编写了这段代码

public static void askQuestions() 
  {
    Scanner input = new Scanner(System.in);
    for (int i = 1; i < 5; i++) 
    {
    System.out.println("Course " + i + ":");
    System.out.print("    Class:  ");
    String courseName = input.nextLine();
    System.out.print("    is AP:  ");
    String answer = input.nextLine();
    System.out.print("    Grade:  ");
    int Grade = input.nextInt();
    }
  }

但我的结果是这样的

类(class) 1:

类:用户输入

是 AP:用户输入

成绩:用户输入

类(class) 2:

类别:是 AP:用户输入

成绩:用户输入

类(class) 3:

类别:是 AP:用户输入

成绩:用户输入

类(class) 4:

类别:是 AP:用户输入

成绩:用户输入

就像第一个循环很好,但循环的其余部分却不好。我做错了什么???

最佳答案

input.nextInt();只读取整数,换行符(\n)仍然保留,所以后续的nextLine读取这个\n, \n 是回车键

看起来像这样

类别:A\n(读取全部)

是 AP:某事\n(读取全部)

年级:23\n(仅读取 23)

类别:\n(来自上一个输入)

你应该这样写 Integer.parseInt(input.nextLine())

关于java - 当没有条件语句时,为什么我的 for 循环会跳过我的扫描仪函数之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468033/

相关文章:

java - 回收器 View 不刷新和显示数据

java - 猜数字游戏无法运行

java - Hibernate Envers - 遍历关系

java - 有没有办法以 zip 文件形式获取 OS X JDK 7?

java - 使用 Java 和 REST 发送 Apple 推送通知时出现问题

java - 无法检测到以下 jdbc 代码中的错误

java.io.IOException : Unexpected response code for CONNECT: 405

java - Java 中的 PHP time() 相当于什么?

java - 为什么我无法在此方法中更改 boolean 变量的值

java - 如何在 Java 或 python 中获得字节顺序?