开关大小写语句中的分号
semicolon in fall through of switch case statement
在 case 语句中添加分号有什么意义吗?我看到跌倒按预期工作,并猜测分号被解释为空语句。但是使用分号有利/弊吗?是否有推荐的某种最佳实践?在下面的 javascript 示例中,请参阅第一个 case 语句中的分号。
switch(a) {
case 2:;
case 3: alert('hello'); break;
default: alert('default hello');
}
我也有兴趣了解与上述 C、C++ 和 Java 相关的最佳实践。我还看到一些文档,如果失败的案例语句部分具有语句,则 C# 会引发编译错误。像上面这样的空语句会在 C# 中触发错误吗?
不,这没有任何区别。
我建议您不要使用它,因为在我看来,它使代码不太清晰。
在 C# 中,这是一个错误。D 也不允许;
作为空语句,您必须使用 {}
.
;
在C,C++和Java中对你没有任何作用。如果您不需要它,请不要使用它。但是,如果您正在实现 Duff's Device 或变体,请给代码的未来读者一个骨头,并给他们留下"失败"或"不间断"的注释。
在 C# 中
switch(a) {
case 2:;
case 3: Console.WriteLine("hello"); break;
default: Console.WriteLine("default hello");
}
防止情况 2 和 3 通过中断 C# 允许的一点点错误来执行相同的代码。
switch(a) {
case 2:
case 3: Console.WriteLine("hello"); break;
default: Console.WriteLine("default hello"); break;
}
对于执行相同代码的情况 2 和 3 有效。
最佳实践
通常不使用空语句。
像上面这样的空语句会在 C# 中触发错误吗?
是的。
语法上是一样的
不过,这肯定会使某人感到困惑,所以我建议不要使用它
相关文章:
- 函数中的切换大小写语句不会切换C++
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 使用开关大小写语句抽取随机扑克牌等级和花色以显示用户
- 如何使用 clang 格式在交换机中获取单行对齐的大小写语句
- 开关大小写语句中函数中的字符串输入会导致无限循环和绕过输入
- 使用 map<string,int> 在开关大小写语句中使用字符串
- 当C/C++程序切换语句转到未定义的大小写并且缺少默认值时,它的正确行为是什么:
- C ++ if else 语句在开关大小写 - 解释
- 在 do{}while 语句中使用的开关大小写会导致 GoAgain 无法正常工作
- 初始化开关大小写语句中的数组
- 将OSX Clang配置为区分大小写以包含语句
- VS2010上不区分大小写的字符串比较-为每个版本的VS播放#if定义的语句
- 为什么开关大小写语句中不能有变量?
- 开关大小写语句不间断
- 百分比大小写语句
- 如何使用else if语句来比较字母并使其不区分大小写?
- c++ 如何避免大小写/切换语句
- 开关大小写语句中的分号
- 没有基本大小写的递归和递归函数之后的语句
- 错误:跳转到switch语句中的大小写标签