Java简单计算器错误

时间:2013-12-22 02:39:48

标签: java calculator

我是java的新手,我正在尝试制作一个基本的计算器。还有另外一个问题,但我改变了为他修复它的东西,但它仍然无效。这是我的代码:

import java.util.Scanner;  

class HelloWorld{

    public static void main(String args[])

        int num1;
        int num2;
        String op;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter your first number");

        num1 = input.nextInt();

        System.out.println("Enter your second number");
        num2 = input.nextInt();

        System.out.println("Enter the operation");
        op = input.nextLine();

        if (op.equals("*")){
            System.out.println("The answer is: " + (num2 * num1));
        }

        if (op.equals("/")){
            System.out.println("The answer is: " + (num2 / num1));
        }

        if (op.equals("+")){
            System.out.println("The answer is: " + (num2 + num1));
        }

        if (op.equals("-")){
            System.out.println("The answer is: " + (num2 - num1));
        }
     }
  }

错误说:

Enter your first number
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at HelloWorld.main(HelloWorld.java:12)

我似乎无法找到什么错误(我有一些我错过的简单的事情)

4 个答案:

答案 0 :(得分:2)

你进入了什么?

Enter your first number
10
Enter your second number
20
Enter the operation
*
The answer is: 200

答案 1 :(得分:1)

我不确定你的程序是否会以你的方式编译,但这里有一个问题:

您没有打开大括号的main方法。

改变这个:

public static void main(String args[])

到此:

public static void main(String args[]) {

当我测试您的代码时,它在Enter the operation之后终止。但是,当我改变这一行时:

op = input.nextLine();

到此:

op = input.next();

效果很好。

以下是控制台输入/输出的示例:

Enter your first number
10
Enter your second number
20
Enter the operation
*
The answer is: 200

答案 2 :(得分:0)

我唯一看错的是public **satic** void main(String args[])除了它正在做的事情......

答案 3 :(得分:0)

每当您从Scanner读取任何令牌时。您可以使用hasNext()方法检查它是否真的存在。所以,你可以做到

用于检查整数:

if(input.hasNextInt())
input.nextInt()

用于检查行:

if(input.hasNextLine())
input.nextLine()

这将摆脱NoSuchElementException

更新

 System.out.println("Enter the operation");
 op = input.next(); //changing it to next() fixed it

<强>输出

 run:
    Enter your first number
    2
    Enter your second number
    3
    Enter the operation
    *
    The answer is: 6
    BUILD SUCCESSFUL (total time: 6 seconds)