切换案例陈述中的分号

时间:2016-07-07 20:27:44

标签: javascript java c# c++ c

在案例陈述中添加分号是否有任何重要意义?我看到翻版按预期工作,并猜测分号被解释为空语句。但是有分号的优点/缺点吗?是否有推荐的某种最佳做法?在下面的javascript示例中,请参阅第一个case语句中的分号。

    switch(a) {
        case 2:;
        case 3: alert('hello'); break;
        default: alert('default hello');
    }

我也有兴趣了解与C,C ++和Java相关的最佳实践。我还看到了一些文档,如果一个case-statement语句声明部分有一个语句,C#会抛出一个编译错误。像上面这样的空语句会在C#中触发错误吗?

4 个答案:

答案 0 :(得分:2)

不,它没有任何区别。

我建议你不要使用它,因为在我看来它会使代码不那么清晰。

在C#中,这是一个错误。 D也不允许;作为空语句,您必须使用{}

答案 1 :(得分:1)

;在C,C ++和Java中没有为您做任何事情。如果您不需要它,请不要使用它。但是,如果您正在实施Duff's Device或变体并将它们留下来,那么请将您的代码的未来读者扔为骨头。#34;堕落"或者"没有休息"评价。

在C#中

switch(a) {
    case 2:;
    case 3: Console.WriteLine("hello"); break;
    default: Console.WriteLine("default hello");
}

通过中断C#允许的一点点掉落来防止案例2和3执行相同的代码。

switch(a) {
    case 2:
    case 3: Console.WriteLine("hello"); break;
    default: Console.WriteLine("default hello"); break;
}

对于执行相同代码的情况2和3有效。

答案 2 :(得分:0)

  

最佳实践

通常不使用空语句。

  

如上所述的空语句会在C#中触发错误吗?

答案 3 :(得分:-1)

从语法上讲,它是相同的

它必然会让某些人感到困惑,所以我建议不要使用它