“switch”语句中的“break”有什么好处(Dart 语言)?

问题描述 投票:0回答:2

当我写这段代码时

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 switch-statement break
2个回答
3
投票

根据 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");
}

0
投票

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
末尾无论如何也不会执行的操作。

© www.soinside.com 2019 - 2024. All rights reserved.