Dart 笔记 5 - 控制流

if/else

括号内的必须是布尔表达式。

if (isRaining()) {
  you.bringRainCoat();
} else if (isSnowing()) {
  you.wearJacket();
} else {
  car.putTopDown();
}

switch、case

switch 语句使用 == 运算来比较整数,字符串或者编译时常量。被比较对象必须:

  • 都是同一个类的实例(而不是它的任何子类型)
  • 这个类不能重写 ==操作

每个非空的 case 子句以一个 break 语句结束。结束非空 case 子句的其他有效方法是 continue、throw 或 return 语句。

当没有 case 子句匹配时,使用 default 子句执行代码:

var command = 'OPEN';
switch (command) {
  case 'CLOSED':
    executeClosed();
    break;
  case 'PENDING':
    executePending();
    break;
  case 'OPEN':
    executeOpen();
    break;
  default:
    executeUnknown();
}

若没有 break,将继续向下执行,即 fall-through

var command = 'CLOSED';
switch (command) {
  case 'CLOSED':
  case 'NOW_CLOSED':
    // 无论 command 是 CLOSED 还是 NOW_CLOSED 都执行
    executeNowClosed();
    break;
}

如果真的需要使用 fall-through 格式,可以使用 continue 语句一个标签,例如:

var command = 'CLOSED';
switch (command) {
  case 'CLOSED':
    executeClosed();
    continue nowClosed;
  // Continues executing at the nowClosed label.

  nowClosed:
  case 'NOW_CLOSED':
    // Runs for both CLOSED and NOW_CLOSED.
    executeNowClosed();
    break;
}

for

var message = StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
  message.write('!');
}

可迭代类支持 for-in 形式,如

var collection = [0, 1, 2];
for (var x in collection) {
  print(x); // 0 1 2
}

和 Java 一样。

如果要迭代的对象是可迭代的,可以使用 forEach()方法。

candidates.forEach((candidate) => candidate.interview());

while/do-while/break/continue

和 Java 完全一样。

猜你喜欢

转载自blog.csdn.net/weixin_33720078/article/details/87217028