输入不匹配错误

Input mismatch error

所以,我这里有这个小程序,但一直收到输入不匹配错误。我将 post 代码下方的错误消息。老实说,我不知道为什么会出现错误。我已经检查了所有必需的变量是否都分配了正确的类型。如果我理解正确,当您尝试输入不期望的内容时会发生上述错误,对吗? ( double 而不是 int 或其他)。我可能在某个地方犯了一些我看不到的愚蠢错误,所以非常感谢你的帮助。

    Scanner sc = new Scanner(System.in);

    int enEur = 0;
    int dvaEur = 0;
    boolean bankrot = false;
    int placilo;


    while (sc.hasNextInt() || bankrot == false){
        placilo = sc.nextInt();
         if(placilo == 1){
             enEur += placilo;
         }
         else{
             enEur --;
             bankrot = test(enEur);
             dvaEur ++;
         }
     }

所以,这就是我的 main() 方法的内容。错误出现在行中:placilo = sc.nextInt()。这是上述错误的副本:

    Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at evroSop.main(evroSop.java:16)

我输入的输入基本上是一行单独的整数,例如:1 1 1 1 2 1...等等。我有不同的示例,所有示例都是不同长度的整数行。

切里奥,乔治

将行读取为String并将其拆分为int[]

hasNext() 调用后,

String str = sc.nextLine();

并将此字符串拆分为 int[]

示例代码:

        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
                String str = sc.nextLine();
                String strArray[] = str.split(" ");
                int intArray[] = new int[strArray.length];

               for (int i = 0; i < intArray.length ; i++) {
                   intArray[i] = Integer.parseInt(strArray[i]);
               }

               for (int j : intArray) {
                    System.out.println(j);
               }
        }

输入:

1 123 456

输出:

1

123

456

条件while (sc.hasNextInt() || bankrot == false)意味着只要有更多输入您将继续尝试从扫描仪读取bankrot仍然是错误的.因此,如果您 运行 没有输入但仍然没有破产,您将得到一个例外,因为您将尝试读取下一个输入,即使没有更多输入。

条件应该是and,不是or,应该是