Javascript switch case语句的fall-through中的分号
在case语句中添加分号作为fall-through的一部分有什么意义吗?我看到fall-through按预期工作,并猜测分号被解释为空语句。但是有分号的优点/缺点吗?是否有推荐的最佳实践?在下面的javascript示例中,请参见第一个case语句中的分号Javascript switch case语句的fall-through中的分号,javascript,java,c#,c++,c,Javascript,Java,C#,C++,C,在case语句中添加分号作为fall-through的一部分有什么意义吗?我看到fall-through按预期工作,并猜测分号被解释为空语句。但是有分号的优点/缺点吗?是否有推荐的最佳实践?在下面的javascript示例中,请参见第一个case语句中的分号 switch(a) { case 2:; case 3: alert('hello'); break; default: alert('default hello'); }
switch(a) {
case 2:;
case 3: alert('hello'); break;
default: alert('default hello');
}
我也对C、C++和java中的上述最佳实践有兴趣。我还看到了一些文档,其中指出如果fall-through中的case语句部分有一个语句,C#就会抛出编译错误。像上面这样的空语句是否会触发C#?中的错误不,这没有任何区别 我建议您不要使用它,因为在我看来,它使代码不那么清晰 在C#中,这是一个错误。
D不允许
也是一个空语句,您必须使用{}
不,这没有任何区别
我建议您不要使用它,因为在我看来,它使代码不那么清晰
在C#中,这是一个错误。
D不允许
作为一个空语句,你必须使用{}
语法上是一样的
不过,它肯定会让人感到困惑,所以我建议不要使用它,因为它在语法上是一样的 但它肯定会让人困惑,所以我建议不要使用它 最佳做法 通常不使用空语句
switch(a) {
case 2:;
case 3: alert('hello'); break;
default: alert('default hello');
}
像上面这样的空语句会在C#中触发错误吗
对
最佳做法
通常不使用空语句
switch(a) {
case 2:;
case 3: alert('hello'); break;
default: alert('default hello');
}
像上面这样的空语句会在C#中触发错误吗
是的。
代码>对C、C++和java没有任何帮助。如果你不需要它,就不要使用它。但是,如果你正在实现一个或一个变体,那么一定要给你的代码的未来读者一根骨头,并给他们留下“失败”或“不中断”的注释
在C中#
通过中断C#允许的一点点下降,防止案例2和案例3执行相同的代码
switch(a) {
case 2:
case 3: Console.WriteLine("hello"); break;
default: Console.WriteLine("default hello"); break;
}
对于执行相同代码的情况2和3有效 代码>对C、C++和java没有任何帮助。如果你不需要它,就不要使用它。但是,如果你正在实现一个或一个变体,那么一定要给你的代码的未来读者一根骨头,并给他们留下“失败”或“不中断”的注释
在C中#
通过中断C#允许的一点点下降,防止案例2和案例3执行相同的代码
switch(a) {
case 2:
case 3: Console.WriteLine("hello"); break;
default: Console.WriteLine("default hello"); break;
}
对于执行相同代码的情况2和3有效 我以前从未见过它。看不出有什么意义。一个五种语言的问题!,除了奇怪的C
和C++
代码使用如此宽的字符常量。在Java中不需要分号,它只会在C中出现,分号标记代码块/语句的结尾,即使其中没有任何内容。遵循if()<代码>案例2:;//跌破
。我以前从未见过它。看不出有什么意义。一个五种语言的问题!,除了奇怪的C
和C++
代码使用如此宽的字符常量。在Java中不需要分号,它只会在C中出现,分号标记代码块/语句的结尾,即使其中没有任何内容。遵循if()<代码>案例2:;//失败
。