我是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)
我似乎无法找到什么错误(我有一些我错过的简单的事情)
答案 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)