我是否总是需要从 switch 语句中break
?简单地用分号 ;
退出是不安全的吗?
switch ( (rand() % 2) ) {
case 0:
// Do foo;
break;
case 1:
// Do nothing
;
default:
;
}
最佳答案
考虑 Duff's Device (将 N 个字节从内存中的一个位置复制到另一个位置的函数):
send(to, from, count)
register short *to, *from;
register count;
{
register n = (count + 7) / 8;
switch(count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while(--n > 0);
}
}
它只管用——是的,它真的管用——因为所有的案例都落到了下一个,因为没有一个案例使用break;
。所以,是的,您必须使用break;
退出case
,但是落入下一个case
可以可能有用。
不过,正如 Duff 的设备简洁地展示的那样,不是使用 break;
失败有一种明显的代码味道,即对你自己来说太棘手.
关于objective-c - 跳出 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279168/