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 应用更加灵活和强大。在实际开发中,需要根据具体的需求选择合适的流程控制语句来完成相应的任务。

相关推荐
Mapmost18 小时前
【高斯泼溅】深度解析Three.js 加载3D Gaussian Splatting模型
前端
Jeled18 小时前
RecyclerView ViewHolder 复用机制详解(含常见错乱问题与优化方案)
android·学习·面试·kotlin
鹏多多18 小时前
详解React组件状态管理useState
前端·javascript·react.js
excel18 小时前
如何将 MP4 文件转换为 M3U8 格式并实现流媒体播放
前端
秋氘渔18 小时前
Vue基础语法及项目相关指令详解
前端·javascript·vue.js
IT_陈寒18 小时前
React性能优化实战:我用这5个技巧将组件渲染速度提升了70%
前端·人工智能·后端
2501_9151063218 小时前
iOS 抓包全流程指南,HTTPS 抓包、TCP 数据流分析与多工具协同的方法论
android·tcp/ip·ios·小程序·https·uni-app·iphone
邱泽贤18 小时前
uniapp 当前页调用上一页的方法
前端·javascript·uni-app
不一样的少年_18 小时前
大部分人都错了!这才是chrome插件多脚本通信的正确姿势
前端·javascript·浏览器
Moment18 小时前
Angular v21 无 Zone 模式前瞻:新特性、性能提升与迁移方案
前端·javascript·angular.js