Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不明白为什么这在线程中不起作用;“主要”;java.util.InputMismatchException_Java_Java.util.scanner - Fatal编程技术网

我不明白为什么这在线程中不起作用;“主要”;java.util.InputMismatchException

我不明白为什么这在线程中不起作用;“主要”;java.util.InputMismatchException,java,java.util.scanner,Java,Java.util.scanner,我只是在学习编码,这对我来说很难,我在互联网上找不到答案,所以我转向这里,我想为Java制作一个计算器,我使用扫描仪,但我做不到,我不明白我做错了什么。。如果你不笑着帮我,我会很高兴的。谢谢 package com.company; import java.util.Scanner; public class Main { public static void main(String[] args) { int result =

我只是在学习编码,这对我来说很难,我在互联网上找不到答案,所以我转向这里,我想为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);

        }
    }

请告诉我如何解决..

您只需要一台扫描仪:

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

您有InputMismatchException,但未写入输入。当您使用nextInt()时,输入必须是整数,否则无法解析为整数。您可能输入了字符串而不是数字。参考此
if (scanner.hasNextInt()) {
    a = scanner.nextInt();
}