我正在尝试制作一个计算器,其中输入类似于+ 5 5或/ 10 2。当我编译和运行它时,出现以下错误:
异常:java.util.NoSuchElementException
在 java.util.Scanner.throwFor(Scanner.java:907) 中
在 java.util.Scanner.next(Scanner.java:1416) 中
在 calc.main(calc.java:11) 中
我的代码:
import java.util.Scanner;
public class calc {
public static void main(String[] args) {
Scanner input = new Scanner( System.in );
String calc;
double num1;
double calcdu = 0.0;
double num2;
while ( true ) {
calc = input.next();
num1 = input.nextDouble();
num2 = input.nextDouble();
if (calc.equals("+"))
{
calcdu= num1 + num2;
System.out.printf("%.2e %s %.2e %c %.2e\n", num1, "+", num2, '=', calcdu);
}
if (calc.equals("/"))
{
calcdu=num1/num2;
System.out.printf("%.2e %s %.2e %c %.2e\n", num1, "/", num2, '=', calcdu);
}
if (calc.equals("-"))
{
calcdu=num1-num2;
System.out.printf("%.2e %s %.2e %c %.2e\n", num1, "-", num2, '=', calcdu);
}
if (calc.equals("*"))
{
calcdu=num1*num2;
System.out.printf("%.2e %s %.2e %c %.2e\n", num1, "*", num2, '=', calcdu);
}
if (calc.equals("%"))
{
calcdu=num1%num2;
System.out.printf("%.2e %s %.2e %c %.2e\n", num1, "%", num2, '=', calcdu);
}
}}}
+ 5 5<enter>
,它打印出5.00e+00 + 5.00e+00 = 1.00e+01
(奇怪的格式,伙计),然后我键入/ 10 2<enter>
,它打印出1.00e+01 / 2.00e+00 = 5.00e+00
,然后我终止了它,因为没有正常结束它的方法。那么,你是如何运行它的? - Andreas