为什么我的Java扫描程序不会输入?

时间:2015-05-09 07:58:56

标签: 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作为您的第二个号码现在   输入你的运营商

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

3 个答案:

答案 0 :(得分:3)

你需要在你调用in.nextLine()的行之后调用in.nextInt()。原因是只要求下一个整数不会消耗输入中的整行,所以你需要跳过通过调用in.nextLine()预先输入到输入中的下一个换行符。

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

每次调用不消耗整行的方法(例如调用nextBoolean()等时)需要获取新行时,必须完成此操作。

答案 1 :(得分:1)

调用Opportunity .rating_info where the real estate kind is Monoambiente and there aren't assigned values is 0 when there are multiple combinations is has the expected value(run 45 different combinations) 读取下一个int,但之后不读取新行字符。因此,新行将在第15行读取。如果您确定每个输入都将放在一个单独的行中,那么您可以通过在第15行之前添加额外的s.nextInt()来解决此问题:

s.nextLine()

答案 2 :(得分:0)

尝试使用字符串输入部分。

`System.out.print(" Now enter ur operator ");
    String b1 =s.next();
    if (b1.equalsIgnoreCase("-")) {
        System.out.println("You chose " + b1 + "as ur operator");
}`