Dart:流程控制

  1. 条件语句
    1. if / else
    2. switch / case
  2. 循环语句
    1. for
    2. for-in
    3. forEach
    4. while / do-while
  3. 跳转语句
    1. labeled continue
      1. 基本语法
      2. 案例
  4. 特殊控制结构
    1. 条件表达式(三元运算符)
    2. 空安全操作

条件语句

if / else

int score = 85;

if (score >= 90) {
  print("优秀");
} else if (score >= 60) {
  print("及格");
} else {
  print("不及格");
}

switch / case

  • 只能匹配 常量 值(和 Java 类似)。
  • case 必须以 breakreturncontinue 结束。
var day = 3;

switch (day) {
  case 1:
    print("星期一");
    break;
  case 2:
    print("星期二");
    break;
  default:
    print("其他");
}

循环语句

for

for (int i = 0; i < 5; i++) {
  print(i);
}

for-in

for (var item in ['a', 'b', 'c']) {
  print(item);
}

forEach

['a', 'b', 'c'].forEach((e) => print(e));

while / do-while

int count = 0;

while (count < 3) {
  print(count);
  count++;
}

do {
  print(count);
  count--;
} while (count > 0);

跳转语句

  • break:跳出循环或 switch
  • continue:跳过本次循环,进入下一次
for (var i = 0; i < 5; i++) {
  if (i == 2) continue;
  if (i == 4) break;
  print(i);
}

labeled continue

labeled continue(带标签的 continue)就是给某个循环加一个名字(标签),然后 continue 可以指定跳过的是哪个循环的当前迭代,而不仅仅是它所在的最近一层循环。

默认情况下:continue 只能跳过当前最近的循环剩余部分,进入它的下一次迭代。

但是:如果你有嵌套循环,并且你想直接跳到外层循环的下一次迭代,就需要给外层循环加一个标签,然后用 continue 标签名 来实现。

基本语法

labelName:
for (...) {
  for (...) {
    if (条件) {
      continue labelName; // 跳过指定循环的剩余部分
    }
  }
}

案例

outerLoop: // 给外层循环起名 outerLoop
for (int i = 1; i <= 3; i++) {
  for (int j = 1; j <= 3; j++) {
    if (j == 2) {
      continue outerLoop; // 跳到 outerLoop 的下一次循环
    }
    print("i=$i, j=$j");
  }
}

执行结果:

i=1, j=1
i=2, j=1
i=3, j=1

特殊控制结构

条件表达式(三元运算符)

var result = (score >= 60) ? "及格" : "不及格";

空安全操作

String? name;
print(name ?? "默认值"); // 如果 name 为 null,使用默认值

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1909773034@qq.com

×

喜欢就点赞,疼爱就打赏