Doo*_*ght 0 java if-statement case break
所以基本上给出了以下代码.
何时action = 2;和mode = 1将i被设置为2?
我正在研究同事代码,它是这样编写的,但我认为中断只会跳过if并继续其余部分case 2.所以基本上if语句是没有意义的.
switch(action){
case 1: i = 1; break;
case 2: if(mode == 1)
{
break;
}
i = 2;
break;
case 3: i = 3; break;
Run Code Online (Sandbox Code Playgroud)
我把它重写为:
case 2: if(mode != 1)
i = 2;
break;
Run Code Online (Sandbox Code Playgroud)
但它不是唯一的地方,有些更复杂.如果我要重构它,我需要一些我正确的信息.
没有"if循环"这样的东西.Break永远不会引用"if"语句.
有关指向语言规范的指针,请参阅Wasserman的答案.
此外,假设1 <= action <= 3,您的代码简化为:
if(! (action == 2 && mode == 1)) {
i = action;
}
Run Code Online (Sandbox Code Playgroud)