我知道在每种情况下switch/ select语句都会自动中断。我想知道以下代码:
switch
select
for { switch sometest() { case 0: dosomething() case 1: break default: dosomethingelse() } }
是否break声明退出for循环或只是switch块?
break
for
Break语句,《 Go编程语言规范》。 “ break”语句终止最里面的“ for”,“ switch”或“ select”语句的执行。 BreakStmt = "break" [ Label ] . 如果有标签,则必须是封闭的“ for”,“ switch”或“ select”语句的标签,并且该标签的执行终止(§For语句,§Switch语句,§Select语句)。 L: for i < n { switch i { case 5: break L } }
Break语句,《 Go编程语言规范》。
“ 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语句终止该语句,即“最内层”语句。