首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >switch case语句的fall中的分号

问switch case语句的fall中的分号
EN

Stack Overflow用户
提问于 2016-07-08 04:27:44
回答 4查看 1.9K关注 0票数 0

在case语句中添加分号有什么意义吗?我看到失败的工作与预期的一样,并猜测分号被解释为空语句。在下面的javascript示例中,请参阅第一个case语句中的分号。

代码语言:javascript
复制
    switch(a) {
        case 2:;
        case 3: alert('hello'); break;
        default: alert('default hello');
    }

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

EN

回答 4

Stack Overflow用户

发布于 2016-07-08 04:31:50

不,这没有任何区别。

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

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

票数 2
EN

Stack Overflow用户

发布于 2016-07-08 04:55:09

在C、C++和Java中,;不会为您做任何事情。如果你不需要它,就不要使用它。但是,如果您正在实现Duff's Device或一个变体,并给他们留下“失败”或“不中断”的注释,请务必给未来的代码读者一点好处。

在C#中

代码语言:javascript
复制
switch(a) {
    case 2:;
    case 3: Console.WriteLine("hello"); break;
    default: Console.WriteLine("default hello");
}

通过中断C#允许的少量fall来防止情况2和3执行相同的代码。

代码语言:javascript
复制
switch(a) {
    case 2:
    case 3: Console.WriteLine("hello"); break;
    default: Console.WriteLine("default hello"); break;
}

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

票数 1
EN

Stack Overflow用户

发布于 2016-07-08 04:34:40

最佳实践

通常不使用空语句。

像上面这样的空语句会在C#中触发错误吗?

是。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38254670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档