当我写这段代码时
void main() {
var age = 18;
switch(age){
case 18:
print("Age is 18");
case 22:
print("Age is 22");
default:
print("Default");
}
}
它给了我这个输出
Age is 18
当我添加 break
语句时,没有区别,默认块在两种情况下都不会运行,那么,break 语句到底有什么好处?
根据 Dart 文档,如果所有 case 语句都有主体,则不需要在 switch 语句中使用中断。因此对于下面的内容,break语句将不起作用。
void main() {
var age = 18;
switch(age){
case 18:
print("Age is 18");
case 22:
print("Age is 22");
default:
print("Default");
}
}
但是,如果您有一个带有空正文的 case 语句并且没有中断,则它将落入下一个有中断的语句(如果有)。例如,下面的代码将打印“Age is 22”。
var age = 18;
switch(age){
case 18:
case 22:
print("Age is 22");
default:
print("Default");
}
以下内容不会打印任何内容。
var age = 18;
switch(age){
case 18:
break;
case 22:
print("Age is 22");
default:
print("Default");
}
break
可用于开关盒中的任何位置以撬开开关。
它(或另一个控制流语句)过去在 switch case 的末尾是必需的,但现在不再需要了。现在如果你想提前打破
,只需要使用break
:
switch (something) {
case int x:
if (x < 0) break;
print("Non-negative integer");
case String x:
if (x.isEmpty) break;
print("Non-empty string");
}
您仍然可以在末尾添加
break
,但它不会执行任何仅到达 case
末尾无论如何也不会执行的操作。