Je ne comprends pas pourquoi cela ne l'exception de travail non fil java.util.InputMismatchException « main »

sous-rayon:

Je suis en train d'apprendre à coder et il est assez difficile pour moi, je ne pouvais pas trouver la réponse sur Internet, donc je me suis tourné ici, je voulais faire une calculatrice pour Java, j'utilise un scanner, mais je ne peux pas le faire et je ne comprends pas ce que je fais mal .. Je vais heureux si vous ne riez pas et aidez-moi. Merci..

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

        }
    }

Donne-moi une erreur:

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)

S'il vous plaît me dire comment résoudre ..

Piotr:

vous besoin d'un seul scanner:

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

pour éviter les erreurs que vous devriez utiliser quelque chose comme:

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

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=345492&siteId=1
conseillé
Classement