Flutter Dart 流程控制语句详解

引言

在 Flutter 开发中,Dart 语言的流程控制语句起着至关重要的作用。它们允许开发者根据不同的条件执行不同的代码块,或者重复执行特定的代码,从而实现程序的逻辑控制。下面将详细介绍 Dart 中常见的流程控制语句,并结合代码示例进行说明。

1. if - else 语句

if - else 语句用于根据条件的真假来执行不同的代码块。它是最基本的条件控制语句,在很多场景下都会用到。

代码示例

dart 复制代码
void main() {
  int score = 75;

  if (score >= 90) {
    print('成绩优秀');
  } else if (score >= 70) {
    print('成绩良好');
  } else if (score >= 60) {
    print('成绩及格');
  } else {
    print('成绩不及格');
  }
}

代码解释

  • 首先定义了一个整数变量 score 并赋值为 75。
  • 程序会依次判断 ifelse if 后面的条件表达式。如果 score >= 90true,则执行对应的代码块;若为 false,则继续判断下一个 else if 条件。
  • score >= 70true 时,执行 print('成绩良好'); 语句,之后不再继续判断其他条件。
  • 如果所有 ifelse if 条件都不满足,则执行 else 后面的代码块。

2. switch - case 语句

switch - case 语句用于根据一个表达式的值来选择执行不同的代码块,通常用于多个固定值的匹配场景。

代码示例

dart 复制代码
void main() {
  String day = 'Monday';

  switch (day) {
    case 'Monday':
      print('星期一,开始上班啦');
      break;
    case 'Tuesday':
      print('星期二,继续加油');
      break;
    case 'Wednesday':
      print('星期三,工作过半啦');
      break;
    case 'Thursday':
      print('星期四,快到周末啦');
      break;
    case 'Friday':
      print('星期五,周末在望');
      break;
    case 'Saturday':
      print('星期六,好好休息');
      break;
    case 'Sunday':
      print('星期日,放松一下');
      break;
    default:
      print('输入的不是有效的星期');
  }
}

代码解释

  • 定义了一个字符串变量 day 并赋值为 'Monday'
  • switch 语句会将 day 的值与各个 case 后面的值进行比较。
  • 当找到匹配的 case 时,执行该 case 下的代码块。注意,每个 case 块末尾需要使用 break 语句来跳出 switch 语句,否则会继续执行下一个 case 块的代码。
  • 如果没有匹配到任何 case,则执行 default 后面的代码块。

3. for 循环

for 循环用于重复执行一段代码,通常在已知循环次数的情况下使用。

代码示例

dart 复制代码
void main() {
  for (int i = 0; i < 5; i++) {
    print('当前数字是: $i');
  }
}

代码解释

  • for 循环由三个部分组成:初始化语句 int i = 0、循环条件 i < 5 和迭代语句 i++
  • 首先执行初始化语句,将变量 i 初始化为 0。
  • 然后检查循环条件 i < 5,如果为 true,则执行循环体中的代码 print('当前数字是: $i');
  • 执行完循环体后,执行迭代语句 i++,将 i 的值加 1。
  • 再次检查循环条件,重复上述过程,直到循环条件为 false 时,循环结束。

遍历列表的 for 循环示例

dart 复制代码
void main() {
  List<String> fruits = ['apple', 'banana', 'cherry'];
  for (String fruit in fruits) {
    print('我喜欢吃 $fruit');
  }
}

这里使用 for - in 语法来遍历列表 fruits 中的每个元素,将元素依次赋值给变量 fruit 并执行循环体。

4. while 循环

while 循环会在指定条件为 true 时不断执行代码块,直到条件变为 false

代码示例

dart 复制代码
void main() {
  int count = 0;
  while (count < 3) {
    print('当前计数: $count');
    count++;
  }
}

代码解释

  • 首先定义一个整数变量 count 并初始化为 0。
  • 检查 while 后面的条件 count < 3,如果为 true,则执行循环体中的代码 print('当前计数: $count');count++;
  • 每次循环结束后,再次检查条件,直到条件为 false 时,循环结束。

5. do - while 循环

do - while 循环与 while 循环类似,但它会先执行一次循环体,然后再检查条件。

代码示例

dart 复制代码
void main() {
  int num = 0;
  do {
    print('当前数字: $num');
    num++;
  } while (num < 2);
}

代码解释

  • 先执行 do 后面的循环体,即打印 当前数字: 0 并将 num 的值加 1。
  • 然后检查 while 后面的条件 num < 2,如果为 true,则继续执行循环体;否则循环结束。

6. break 和 continue 语句

  • break 语句用于跳出当前的循环或 switch 语句。
  • continue 语句用于跳过当前循环的剩余部分,直接开始下一次循环。

代码示例

dart 复制代码
void main() {
  for (int i = 0; i < 5; i++) {
    if (i == 2) {
      break; // 当 i 等于 2 时,跳出循环
    }
    print('当前数字: $i');
  }

  for (int j = 0; j < 5; j++) {
    if (j == 2) {
      continue; // 当 j 等于 2 时,跳过本次循环的剩余部分,继续下一次循环
    }
    print('另一个数字: $j');
  }
}

代码解释

  • 在第一个 for 循环中,当 i 等于 2 时,执行 break 语句,循环立即结束。
  • 在第二个 for 循环中,当 j 等于 2 时,执行 continue 语句,跳过 print('另一个数字: $j'); 语句,直接开始下一次循环。

总结

通过合理运用 Dart 中的流程控制语句,如 if - elseswitch - casefor 循环、while 循环、do - while 循环以及 breakcontinue 语句,开发者可以实现复杂的程序逻辑,使 Flutter 应用更加灵活和强大。在实际开发中,需要根据具体的需求选择合适的流程控制语句来完成相应的任务。

相关推荐
烛阴26 分钟前
秒懂 JSON:JavaScript JSON 方法详解,让你轻松驾驭数据交互!
前端·javascript
拉不动的猪34 分钟前
刷刷题31(vue实际项目问题)
前端·javascript·面试
zeijiershuai36 分钟前
Ajax-入门、axios请求方式、async、await、Vue生命周期
前端·javascript·ajax
alexhilton37 分钟前
高效地在Jetpack Compose中设计UI组件
android·kotlin·android jetpack
恋猫de小郭39 分钟前
Flutter 小技巧之通过 MediaQuery 优化 App 性能
android·前端·flutter
Android采码蜂39 分钟前
SurfaceFlinger10-Transaction在sf进程中的提交过程
android
只会写Bug的程序员1 小时前
面试之《webpack从输入到输出经历了什么》
前端·面试·webpack
拉不动的猪1 小时前
刷刷题30(vue3常规面试题)
前端·javascript·面试
CYRUS_STUDIO1 小时前
安卓逆向魔改版 Base64 算法还原
android·算法·逆向
狂炫一碗大米饭1 小时前
面试小题:写一个函数实现将输入的数组按指定类型过滤
前端·javascript·面试