制作一个开关案例执行以前的案例

时间:2015-04-02 21:29:39

标签: java switch-statement

我的代码如下:

    switch(read.nextInt()){
        case 1:
            //do "a" and print the result
            break;
        case 2:
            //do "b" and print the result
            break;
        case 3:
            //do "a" and print the result
            //do "b" and print the result
    }

有没有其他方法可以做到这一点,而不是简单地复制案例1和案例2中的内容? 我刚开始毕业,所以我只能使用字符串扫描仪,谢谢:)

4 个答案:

答案 0 :(得分:2)

定义两个名为doA()doB()的方法并调用它们。这样您就不会重复代码。您还确定在每个break声明后都不需要case语句吗?

    switch(read.nextInt()){
        case 1:
            doA();
            break;
        case 2:
            doB();
            break;
        case 3:
            doA();
            doB();
            break;
        default:
            // do something
            break;
    }

答案 1 :(得分:0)

在这种情况下,为

创建方法可能是有意义的
//do "a" and print the result

//do "b" and print the result

在案例3中,您将一个接一个地调用这些方法。

答案 2 :(得分:0)

一个棘手的问题,IMO更具可读性:

int nextInt = read.nextInt();
if (nextInt % 2 == 1) { // or if (nextInt == 1 || nextInt == 3) {
  // do "a" and print the result
}
if (nextInt > 1) {
  // do "b" and print the result
}

答案 3 :(得分:0)

看起来你已经忘记了' break'。它使代码" break"来自switch语句。如果你想要' 1' &安培; ' 2'做同样的事情,如果是' 3'另一件事,你可以写:

switch(read.nextInt()){
        case 1:
        case 2:
            //do "a" or "b" and print the result
            break; //break from switch statement, otherwise, the code below (yes, I mean "case 3") will be executed too
        case 3:
            //do "a" and print the result
            //do "b" and print the result
    }

通常添加" break"在#34; case"阻止,如果您不希望为多个值执行相同的代码块:

switch(n){
        case 1:
            //do something
            break;
        case 2:
            //do other things
            break;
        case 3:
            //more things!
            //you may not write "break" in the last "case" if you want
    }