[英]Java - Switch statement and curly braces
我有一個與switch-case塊中的花括號相關的問題
switch( conditon ) {
case val1: {
// something
}
break;
case val2: {
// something
}
break;
default:
break;
}
或類似的東西:
switch( conditon ) {
case val1: {
// something
break;
}
case val2: {
// something
break;
}
default:
break;
}
AI知道這兩個代碼應該以相同的方式工作,但我認為這里存在一些不合理之處。 由於斷點應該導致從花括號塊跳出,所以理論上第二個代碼應該像這樣順利:1。斷開跳出塊2的路線。切換繼續執行情況val2或默認導致在括號外沒有任何break語句。
您建議使用哪個版本,它們是否真的以同樣的方式工作?
試試這個:
{
System.out.println("A");
break;
System.out.println("B");
}
你會看到的
$ javac Y.java
Y.java:35: error: break outside switch or loop
break;
^
1 error
這意味着:您不能在塊中使用它,它與塊組合無效。
我不會把突破放在禁區之外,但我從來沒有看到編碼規則要求任何一種方式(你可以為雙方提出論據)。 也許這是因為不經常使用塊來分隔每個交換機分支的可見性。
大括號限制了變量的范圍。 並且除了if,while,switch,block之外,對流控制沒有影響,除了它們是可選的情況
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.