我的代码如下:
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中的内容? 我刚开始毕业,所以我只能使用字符串和扫描仪,谢谢:)
答案 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
}