【发布时间】:2016-01-18 06:33:57
【问题描述】:
根据我正在阅读的这本书:
Q 如果我在 switch-case 语句中省略了 break 会发生什么?
A break 语句使程序执行能够退出 switch 构造。 没有它,执行将继续评估以下 case 语句。
假设我的代码看起来像
switch (option}{
case 1:
do A;
case 2:
do B;
default:
do C;
break;
}
这是否意味着如果我选择案例 1,A 和 C 就完成了。如果我选择案例 2,B 和 C 就完成了。如果我都不选择,那么只有 C 完成。
如果是这样,如果我们在 do C 之后省略了 break 会发生什么。
我认为这些都是不好的编程习惯,但我很好奇会发生什么来更深入地了解它是如何工作的。谢谢
【问题讨论】:
-
“如果我选择案例1,A和C都完成了”:没有A,B和C完成。
-
只需编译一些执行此操作的测试代码,您就会发现:p
-
您从所选案例开始执行一切,直到看到
break或switch语句结束。所以可能只有 C 被执行,或者 B 然后 C,或者 A 和 B 和 C,但从来没有 A 和 C。 -
顺便说一句,这是一个不错的编程习惯。
-
强制引用Duff's Device :)
标签: c++ switch-statement