switch
/ステートメントは各ケースの後に自動的にブレークすることは知っていますselect
。次のコードで疑問に思うことがあります。
for {
switch sometest() {
case 0:
dosomething()
case 1:
break
default:
dosomethingelse()
}
}
break
ステートメントはループを終了しますfor
か、それともブロックだけを終了しますかswitch
?
ベストアンサー1
「break」ステートメントは、最も内側の「for」、「switch」、または「select」ステートメントの実行を終了します。
BreakStmt = "break" [ Label ] .
ラベルがある場合、それは囲んでいる「for」、「switch」、または「select」ステートメントのラベルである必要があり、その実行は終了します (§For ステートメント、§Switch ステートメント、§Select ステートメント)。
L: for i < n { switch i { case 5: break L } }
したがって、break
例のステートメントは、ステートメントswitch
、つまり「最も内側の」ステートメントを終了します。