我不明白为什么这不起作用 java.util.InputMismatchException 在线程"main"异常



我只是在学习编码,这对我来说很困难,我在互联网上找不到答案,所以我转向这里,我想为Java制作一个计算器,我使用扫描仪,但我做不到,我不明白我做错了什么。。如果你不笑着帮我,我会很高兴的。谢谢。。

package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int result = 0;
Scanner num1 = new Scanner(System.in);
System.out.println("Hola<Soy Calculadora> Etre primer numero : ");
System.out.println("Tu primer numero es : " + num1);
System.out.println("Entre Segundo numero aqui : " );
Scanner num2 = new Scanner(System.in);
System.out.println("Tu segundo numero es : " + num2);
System.out.println(" Ahora elige que quieres hacer con los numeros " + num1 + " y " + num2 + " (para eligir solo tienes que introducir un simvolo p. ej. '+' )");
Scanner act = new Scanner(System.in);
int userInputnum1 = num1.nextInt();
int userInputnum2 = num2.nextInt();
String userInputact = act.nextLine();

if(userInputact.equals("+")){
result = userInputnum1 + userInputnum2;
}else if(userInputact.equals("-")){
result = userInputnum1 + userInputnum2;
}else if(userInputact.equals("/")){
result = userInputnum1/userInputnum2;
}
System.out.println("resultado :" + result);
}
}

给我一个错误:

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 com.company.Main.main(Main.java:18)

请告诉我如何解决。。

您只需要一个扫描仪:

Scanner scanner = new Scanner(System.in);
int a,b,r=0;
char c;
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.next().charAt(0);
switch (c) {
case '+':
r = a + b;
break;
/// more cases
default: {
System.out.println("default");
}
}
System.out.println(r);

为了防止错误,你应该使用类似的东西:

if (scanner.hasNextInt()) {
a = scanner.nextInt();
}

最新更新