我是新來的Java。我希望能夠在掃描儀中輸入操作字符。字符使用掃描儀
我的代碼應該產生以下,
- 輸入兩個數字:13 6
- 什麼操作? *
- 什麼是13 * 6? 78
- 正確!
我使用switch語句來存儲可用於用戶的操作。 這些是:+, - ,*和/。
我收到一個運行時間錯誤,每次我輸出後寫操作。
import java.util.Scanner;
public class Användardialog4 {
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
int svar;
String op;
char operator;
System.out.println("Enter two numbers: ");
int tal = sc.nextInt();
int tal2 = sc.nextInt();
System.out.println("Operation?");
op = sc.nextLine();
operator = op.charAt(0);
switch(operator){
case '+':
System.out.println("What is "+tal+" + "+tal2);
svar = sc.nextInt();
if (svar == tal+tal2)
System.out.println("Correct!");
else
System.out.println("Wrong - The right answer is: "+tal+tal2);
break;
case '*':
System.out.println("What is "+tal+" * "+tal2);
svar = sc.nextInt();
if (svar ==tal*tal2)
System.out.println("Correct!");
else
System.out.println("Wrong - The right answer is: "+tal*tal2);
break;
case '-':
System.out.println("What is "+tal+" - "+tal2);
svar = sc.nextInt();
if (svar == tal-tal2)
System.out.println("Correct!");
else
System.out.println("Wrong - The right answer is: "+(tal-tal2));
break;
case '/':
System.out.println("What is "+tal+"/"+tal2);
svar = sc.nextInt();
if (svar == tal/tal2)
System.out.println("Correct!");
else
System.out.println("Wrong - The right answer is: "+tal/tal2);
break;
}
}
}
運行時間錯誤我得到的是:
Exception in thread "main" java.util.InputMismatchException at
java.util.Scanner.throwFor(Unknown Source) at
java.util.Scanner.next(Unknown Source) at
java.util.Scanner.nextInt(Unknown Source) at
java.util.Scanner.nextInt(Unknown Source) at
Användardialog4.main(Dialog4.java:16)
所以我的問題是,我怎麼在Scanner類使用字符? 是不是有nextChar();或者類似於Java的東西?
這不是一個編譯器錯誤,這是一個運行時異常。看起來問題是你要求一個int並且它看到的下一個標記不是int。 – Kevin
不是迴應,只是旁觀:如果您使用的是Java 5+,我建議使用「枚舉」來提供操作功能。它會更整潔。 – DPM