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 完全一样。
网友评论