InputMismatchException の解決方法を教えてください。
Q&A
Closed
解決したいこと
解決法がわからないです
例)
Java初学者です。
aoj betaでプログラムを作っているときにInputMismatchExceptionが起きました。
ネットで調べたりほかの方の回答を参考に見させていただきましたが、このソースコードでどこがエラーの原因になっているかが分かりません。
分かる方ご教授願います、、、。
Main.javaの11行目はb=sc.nextInt()の部分です
発生している問題・エラー
Exception in thread "main" java.util.InputMismatchException at
java.base/java.util.Scanner.throwFor(Scanner.java:939) at
java.base/java.util.Scanner.next(Scanner.java:1594) at
java.base/java.util.Scanner.nextInt(Scanner.java:2258) at
java.base/java.util.Scanner.nextInt(Scanner.java:2212) at
Main.main(Main.java:11) Command exited with non-zero status 1 0.05user 0.00system 0:00.03elapsed 168%CPU (0avgtext+0avgdata 40684maxresident)k 0inputs+72outputs (0major+3725minor)pagefaults 0swaps
例)
2つの整数 a, b と1つの演算子 op を読み込んで、a op b を計算するプログラムを作成して下さい。ただし、演算子 op は、"+"(和)、"-"(差)、"*"(積)、"/"(商)、のみとし、割り算で割り切れない場合は、小数点以下を切り捨てたものを計算結果とします。
入力は複数のデータセットから構成されています。各データセットの形式は以下のとおりです:
a op b
op が '?' のとき 入力の終わりを示します。このケースの出力は行ってはいけません。
### 該当するソースコード
```Java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = 0;
int b = 0;
while(true){
a = sc.nextInt();
b = sc.nextInt();
String op = sc.next();
switch(op) {
case "+":
System.out.println(a+b);
break;
case "-":
System.out.println(a-b);
break;
case "*":
System.out.println(a*b);
break;
case "/":
System.out.println(a/b);
break;
default :
sc.close();
break;
}
}
}
}