您好我正在使用5种操作选择编程计算器。
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exit
我想要求用户选择操作并检查选择是否有效(即1 - 5)如果不是,则给出错误的消息并提示用户再次选择。
我在考虑在else语句中使用带有switch语句的if-else语句。
System.out.printf("What would you like to do? ");
int selection = input.nextInt();
if (selection!=1 || 2 || 3 || 4 || 5) {
System.out.println("You have entered an invalid choice, please re-enter
your choice: ");
}/*end if as long as the selection is NOT a 1 - 5, prompt the user to
re-enter*/
else {
switch(selection){
case 1:
case 2:
case 3:
case 4:
case 5;
我在if
行收到Eclipse编译器错误:
The operator || is undefined for the argument type(s) boolean, int
任何想法有什么问题以及如何解决这个问题?感谢
开尔文
答案 0 :(得分:1)
您甚至不需要if
声明
switch(selection){
case 1:
// handle 1
break;
case 2:
// handle 2
break;
case 3:
// handle 3
break;
case 4:
// handle 4
break;
case 5:
// handle 5
break;
default:
System.out.println("You have entered an invalid choice, please re-enter
your choice: ");
break;
}
default
子句将处理在任何情况下都不适合的每个语句。
答案 1 :(得分:0)
if
语句需要条件运算符之间的有效表达式。也许
if (selection != 1 && selection != 2 && selection != 3
&& selection != 4 && selection != 5) {
...
}
答案 2 :(得分:0)
你不能像在英语中那样在Java中组合这样的条件性案例。 "如果选择不是1或2或3或4或5"不能那样翻译成Java。您必须每次都明确说明selection
,否则编译器会认为您正在尝试使用||
上的selection != 1
运算符,boolean
和2
,int
,因此错误。此外,该值始终为"而不是1" 或"不是2" 或 ...你应该使用"和" (&&
)。
if (selection!=1 && selection!=2 && selection!=3 && selection!=4 && selection!=5) {
这可以简化,因为数字是连续的:
if (selection < 1 || selection > 5)