模式切换
控制流
Dart 提供多种控制流语句,帮助开发者处理条件分支、循环结构和异常处理。
条件语句
if-else
if-else
是最常见的条件语句,用于根据条件执行不同代码。
语法:
dart
if (condition) {
// 当条件为 true 时执行
} else if (anotherCondition) {
// 当另一个条件为 true 时执行
} else {
// 当所有条件均为 false 时执行
}
示例:
dart
void main() {
int score = 85;
if (score >= 90) {
print('Grade: A');
} else if (score >= 75) {
print('Grade: B');
} else {
print('Grade: C');
}
}
switch-case
switch-case
用于处理多种可能的离散值。每个 case
必须以 break
或 return
结束,避免贯穿(fall-through)。
语法:
dart
switch (variable) {
case value1:
// 执行代码
break;
case value2:
// 执行代码
break;
default:
// 默认代码
}
示例:
dart
void main() {
String grade = 'B';
switch (grade) {
case 'A':
print('Excellent');
break;
case 'B':
print('Good');
break;
case 'C':
print('Average');
break;
default:
print('Invalid grade');
}
}
循环
for
for
循环用于执行已知次数的迭代。
语法:
dart
for (initialization; condition; increment/decrement) {
// 循环体
}
示例:
dart
void main() {
for (int i = 0; i < 5; i++) {
print('Count: $i');
}
}
for-in
for-in
用于遍历集合。
示例:
dart
void main() {
var items = ['apple', 'banana', 'cherry'];
for (var item in items) {
print(item);
}
}
while
while
循环在条件为 true
时反复执行。
语法:
dart
while (condition) {
// 循环体
}
示例:
dart
void main() {
int count = 0;
while (count < 3) {
print('Count: $count');
count++;
}
}
do-while
do-while
至少执行一次循环体,然后检查条件。
语法:
dart
do {
// 循环体
} while (condition);
示例:
dart
void main() {
int count = 0;
do {
print('Count: $count');
count++;
} while (count < 3);
}
异常处理
Dart 使用 try-catch
捕获异常,并使用 throw
抛出异常。
try-catch
try-catch
捕获运行时错误并防止程序崩溃。
语法:
dart
try {
// 可能引发异常的代码
} catch (e) {
// 异常处理
}
示例:
dart
void main() {
try {
int result = 10 ~/ 0; // 引发异常
print(result);
} catch (e) {
print('Error: $e');
}
}
throw
throw
用于手动抛出异常。
示例:
dart
void checkAge(int age) {
if (age < 18) {
throw Exception('Age must be at least 18.');
}
}
void main() {
try {
checkAge(15);
} catch (e) {
print('Caught an exception: $e');
}
}
finally
finally
无论是否引发异常都会执行,常用于释放资源。
示例:
dart
void main() {
try {
int result = 10 ~/ 0;
print(result);
} catch (e) {
print('Error: $e');
} finally {
print('Execution finished.');
}
}