|
|
1
7
在你的开关的最后一个案件陈述后休息一下是好的 defensive programming . 如果,也许在将来,在下面添加另一个case语句,它将消除程序流的风险 跌破 从上面的案例来看。 |
|
|
2
7
如果
现在,至于你为什么需要
|
|
|
3
3
一致性。原因与在带有大括号的对象实例化语句中,在最后一个枚举定义或最后一个赋值之后可以有逗号相同。最后一个案子可能并不总是最后一个案子。 这也使得它有更少的特殊情况。 如果是这样的话,那么学习、写作或阅读就更容易了。尽管这增加了一致性。 |
|
|
4
3
在C和C++中,切换语句在没有中断的情况下会通过标签。在C语言中,让用户明确地说出他们想做的事情对于避免bug是很重要的。例如,很多用户从C++中来到C语言。 特别是你要问的最后一个案子的陈述。我能想出三个好理由。
|
|
|
5
3
|
|
|
6
2
有一种情况下,你不必把打破 考虑以下代码:
似乎由于switch有一个常量表达式,编译器已经知道它要执行的路径,然后忽略dafault标签。 最酷的是,如果将switch(1)更改为switch(2),它将不再编译,因为默认标签缺少中断。 编辑: 从 C# Reference
这就解释了为什么违约不需要中断。事实上,任何不可更改的标签都不需要中断、返回或转到 |
|
|
7
1
当使用
你必须选择你想做的事。它可以确保编译器做正确的事情,使代码更清晰,并且使愚蠢的程序员更难做一些事情,比如在“最后一个”之后添加另一个case,并且忘记输入break/goto/return。 |
|
|
8
0
|
|
|
9
0
如前所述,可以使用default:,但也可以考虑case null。case null:不需要中断; 大小写为空: 中断; 如果你想“瀑布”下来,你可以这样做;
您可以根据需要将其与中断一起使用,但在最后一次评估中需要中断一次。 |
|
|
ZenBa2 · getopt未更改值C 3 年前 |
|
|
Waeez · 条件未满足php仍在运行 7 年前 |
|
|
Catz · 正在尝试打印正确数量的“*”以代替数值 7 年前 |
|
|
privilegedMale · switch语句中的扫描仪问题 7 年前 |
|
|
rasilvap · 具有多个参数的开关箱 7 年前 |
|
|
RudziankoÅ · 不可能的类型切换情况:不能有动态类型 7 年前 |
|
|
Leo Thomas · 循环case语句而不退出shell脚本 7 年前 |