对于switch语句,是否可以在switch语句中更改switch的值,以便它可以跳转到不同的情况?例如:
int w = 0;
switch(w)
{
case 1:
doSomething();
w = 3;
case 2:
doSomething();
break;
case 3:
doSomething();
break;
}基本上我要问的是,如果我没有为case放置一个break语句,并且我在同一个case中更改了switch的值,那么代码会同时执行这两个case吗?
发布于 2011-05-24 12:41:13
是的,你可以改变switch中的值,但是它不会为新值执行case,直到你在改变了值的情况下中断。
在你的情况下,它在任何情况下都不会运行,因为没有0的情况。但是如果你改成w=1,那么它将在第一种情况下,然后在第二种情况下,因为你没有break;但它不会适用于第三种情况。
发布于 2011-05-24 12:46:55
不会,它不会改变,也不会执行新的case语句。
请记住,一旦找到与switch语句中的值对应的case语句的适当的匹配,就会执行该特定的case,并且一旦执行(如果在每个case之后提供break以防止失败到所有case),则控制返回到switch语句的末尾。
示例代码:
public class A {
public static void main(String [] args) {
int i=1;
switch(i) {
case 1 :
System.out.println("Case 1");
i = 2;
break;
case 2 :
System.out.println("Changed to Case 2");
break;
default:
System.out.println("Default");
break;
}
System.out.println("Final value of i " + i);
}
}输出:
Case 1
Final value of i 2 注意:插入了正确的断点,请尝试调试。你会逐渐了解你自己,了解到底发生了什么。
发布于 2014-03-22 11:12:25
如果我们在每个case之后没有给出break,那么Java将从匹配case开始执行语句,并继续执行后续case的语句,直到找到break语句或遇到switch语句end。
https://stackoverflow.com/questions/6105740
复制相似问题