我試圖與某一輸入一個計算器,輸入如+ 5或/ 10 2.當我編譯並運行它,我得到這個錯誤:無法獲得循環正常工作
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at 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);
}
}}}
「提交」是什麼意思? 你的意思是你使用java命令運行程序? – Brian
@Iyen哈哈,只要輸入那個,*完全*。 :-)作爲一個猜測,不管你運行的是它的stdin綁定到你的機器的等同於/ dev/null的,所以第一次掃描任何東西都會導致文件結束。 – blm
循環如何結束,爲什麼變量定義在循環之外? – Andreas