输入不匹配错误
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,应该是
所以,我这里有这个小程序,但一直收到输入不匹配错误。我将 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,应该是