【发布时间】:2023-03-17 19:43:02
【问题描述】:
您好,我尝试了计算器的语法,操作数为 char 但结果总是错误。 我正在使用日食(Luna)。上面没有错误或警告信息。
语法
Scanner in = new Scanner(System.in);
int answer = 0;
System.out.println("Enter a number:");
int num1 = in.nextInt();
System.out.println("Enter another number:");
int num2 = in.nextInt();
System.out.println("Enter the operand:");
char input =(char) in.nextInt();
switch (input){
case'*':
answer = num1 * num2;
break;
case '/':
answer = num1/num2;
break;
case '%':
answer = num1%num2;
break;
case '+':
answer = num1 +num2;
break;
case '-':
answer = num1-num2;
break;
default:
System.out.println("Invalid Command");
}
System.out.println("The result is: " + answer);
调试
输入一个数字,另一个数字和一个操作数:
和错误:
输入不匹配异常
【问题讨论】:
-
在
char input =(char) in.nextInt();行中,使用in.next()而不是in.nextInt() -
in.next()会给你一个String...他正在使用char -
我试过
in.next有错误(不能从 String 转换为 char。 -
k,因此当您使用 nextInt() 时,它会尝试将值作为 int 读取。然后您尝试将其用作字符。这将创建您的 InputMismatchException。为什么不将所有内容都更改为 String(包括 switch 语句中的所有内容),然后按照建议使用 .next()。
标签: java eclipse switch-statement calculator