引言
在 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。 - 程序会依次判断
if
和else if
后面的条件表达式。如果score >= 90
为true
,则执行对应的代码块;若为false
,则继续判断下一个else if
条件。 - 当
score >= 70
为true
时,执行print('成绩良好');
语句,之后不再继续判断其他条件。 - 如果所有
if
和else 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 - else
、switch - case
、for
循环、while
循环、do - while
循环以及 break
和 continue
语句,开发者可以实现复杂的程序逻辑,使 Flutter 应用更加灵活和强大。在实际开发中,需要根据具体的需求选择合适的流程控制语句来完成相应的任务。