让 switch case 执行之前的 case
Make a switch case execute previous cases
我的代码如下:
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 中的内容?
我刚开始毕业,所以我只能使用String和Scanner,谢谢:)
定义两个方法 doA()
和 doB()
并调用它们。这样您就不会重复您的代码。另外,您确定在每个 case
语句之后不需要 break
语句吗?
switch(read.nextInt()){
case 1:
doA();
break;
case 2:
doB();
break;
case 3:
doA();
doB();
break;
default:
// do something
break;
}
在这种情况下,为
创建方法可能是有意义的
//do "a" and print the result
和
//do "b" and print the result
在情况 3 中,您只需一个接一个地调用这些方法。
一个棘手的问题,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
}
看来您忘记了 'break'。它从 switch 语句生成代码 "break"。如果你想在 '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
}
如果您不想为多个值执行相同的代码块,通常会在 "case" 块的末尾添加 "break":
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
}
我的代码如下:
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 中的内容? 我刚开始毕业,所以我只能使用String和Scanner,谢谢:)
定义两个方法 doA()
和 doB()
并调用它们。这样您就不会重复您的代码。另外,您确定在每个 case
语句之后不需要 break
语句吗?
switch(read.nextInt()){
case 1:
doA();
break;
case 2:
doB();
break;
case 3:
doA();
doB();
break;
default:
// do something
break;
}
在这种情况下,为
创建方法可能是有意义的//do "a" and print the result
和
//do "b" and print the result
在情况 3 中,您只需一个接一个地调用这些方法。
一个棘手的问题,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
}
看来您忘记了 'break'。它从 switch 语句生成代码 "break"。如果你想在 '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
}
如果您不想为多个值执行相同的代码块,通常会在 "case" 块的末尾添加 "break":
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
}