Gar*_*sen 1 java break switch-statement
我已经在stackoverflow中搜索了有关问题的原因,为什么在找到匹配的情况后switch不会中断.
例如,我编写了一些模拟骰子的代码.对于每次投掷,我都会因为统计原因而计算(一,...... = int).
switch (actualThrow) {
case (1): one++;
case (2): two++;
case (3): three++;
case (4): four++;
case (5): five++;
case (6): six++;
}
Run Code Online (Sandbox Code Playgroud)
我不要知道,这种情况下,(3)情况(6)将被检查,如果我的罚球是3(我们为什么需要case语句后打破?),它会通过插入阻止break;,但我想明白了,为什么显然,以下情况似乎被检查,但执行,虽然条件没有得到满足.
想象一下这种情况:
switch(trafficLight.state) {
case GREEN:
car.drive();
break;
case YELLOW:
car.drive();
break;
case RED:
car.stop();
break;
}
Run Code Online (Sandbox Code Playgroud)
看起来有点浪费,因为GREEN和YELL都做同样的事情.Java让我们合并,以便多个条件采取相同的操作:
switch(trafficLight.state) {
case GREEN:
case YELLOW:
// Now both GREEN and YELLOW will use this code
car.drive();
break;
case RED:
car.stop();
break;
}
Run Code Online (Sandbox Code Playgroud)
代码少,效果相同.就这样.这是一个简单的例子,除此之外,还有其他方法可以使用不太明显且更容易被滥用的方法.
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |