No entiendo por qué esto no hace excepción de trabajo en hilo de java.util.InputMismatchException "principal"

SubRay :

Estoy aprendiendo a código y es bastante difícil para mí, no pude encontrar la respuesta en Internet, así que di vuelta aquí, quería hacer una calculadora para Java, utilizo un escáner, pero no puedo hacerlo y yo no entiendo lo que estoy haciendo mal .. voy a feliz si no me río y me ayuda. Gracias..

   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);

        }
    }

me da un error:

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)

Por favor, dime cómo resolver ..

Piotr:

sólo se necesita un escáner:

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);

para evitar errores que puedes usar algo como:

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=345495&siteId=1
Recomendado
Clasificación