小编典典

为什么我的Java扫描仪不接受输入?

java

package Lessons;

import java.util.Scanner;

public class Math {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("please enter the first number of your question! ");
        int a1 = s.nextInt();
        System.out.print("So you chose " + a1);
        System.out.println(" Choose ur second number");
        int a2 = s.nextInt();
        System.out.print("You chose " + a2 + " for your second number");
        System.out.print(" Now enter ur operator ");
        String b1 = s.nextLine();
        if (b1.equalsIgnoreCase("-")) {
            System.out.println("You chose " + b1 + "as ur operator");
        }
    }

}

我不明白为什么第15行不做任何输入,将不胜感激:3

输出量

请输入您的问题的第一个数字!2552所以您选择了2552选择您的第二个数字41您选择了第二个数字41现在输入ur运算符

由于某种原因,输出在最后一行结束并停止,并且不接收任何信息!


阅读 262

收藏
2020-11-26

共1个答案

小编典典

您需要在调用in.nextLine()行的后面立即调用in.nextInt(),原因是仅要求下一个整数不会占用输入中的整个行,因此您需要通过调用来跳至输入中的下一个新行字符in.nextLine()

int a2 = s.nextInt();
s.nextLine();

每次您需要在调用不占用整行的方法后(例如在调用nextBoolean()等时)获得新行时,都必须执行此操作。

2020-11-26