我知道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语句,即“最内层”语句。