[英]semicolon in fall through of switch case statement
在附帶聲明中添加分號是否有任何意義? 我看到掉線效果符合預期,並且猜測分號被解釋為空語句。 但是使用分號是否有利弊? 有推薦的某種最佳做法嗎? 在下面的JavaScript示例中,請參閱第一個case語句中的分號。
switch(a) {
case 2:;
case 3: alert('hello'); break;
default: alert('default hello');
}
我也想了解與上述C,C ++和Java有關的最佳實踐。 我還看到一些文檔,如果掉線事件中的case語句包含一條語句,C#會引發編譯錯誤。 像上面的空語句會在C#中觸發錯誤嗎?
不,沒有任何區別。
我建議您不要使用它,因為我認為它會使代碼不太清晰。
在C#中,這是一個錯誤。 D不允許;
同樣作為空語句,也必須使用{}
。
;
在C,C ++和Java中對您沒有任何幫助。 如果您不需要它,請不要使用它。 但是,如果要實現Duff的Device或變體,請不要讓將來的代碼閱讀者大吃一驚,而要讓他們“掉線”或“不間斷”注釋。
在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執行相同代碼時將是有效的。
最佳實踐
通常是不使用空語句。
像上面的空語句會在C#中觸發錯誤嗎?
是。
語法上是一樣的
它一定會使人困惑,所以我建議不要使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.