使用if else和switch选择菜单

时间:2015-02-19 18:14:24

标签: java eclipse if-statement switch-statement

您好我正在使用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

任何想法有什么问题以及如何解决这个问题?感谢

开尔文

3 个答案:

答案 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运算符,boolean2int,因此错误。此外,该值始终为"而不是1" "不是2" ...你应该使用"和" (&&)。

if (selection!=1 && selection!=2 && selection!=3 && selection!=4 && selection!=5) {

这可以简化,因为数字是连续的:

if (selection < 1 || selection > 5)