目录
条件/决策构造在执行指令之前评估条件。
下表是Dart中的条件语句
语句 | 说明 |
---|---|
if 语句 | 一个if语句由一个布尔表达式后跟一个或多个语句 |
if...else 语句 | 一个 if 可以跟一个可选的 else 块 |
else...if 语句 | else…if 可用于检测多个条件 |
switch…case 语句 | switch语句计算表达式,将表达式的值与case子句匹配, 并执行与该case相关的语句 |
if
语句
if … else 语句在执行的代码块之前判断条件。
以下是语法。
if(boolean_expression){
// 如果布尔表达式为true,则将执行语句。
}
如果布尔表达式的计算结果为 true ,则将执行if语句中的代码块。如果布尔表达式的计算结果为 false ,则将执行if语句结束后(在结束大括号之后)的第一组代码。
var num=5;
if (num>0) {
print("number is positive");
}
输出结果:
number is positive
if...else
语句
if后面可以跟一个可选的else块。如果if块测试的布尔表达式求值为false,则执行else块。以下是语法。
if(boolean_expression){
// 如果布尔表达式为true,则将执行语句。
} else {
// 如果布尔表达式为false,则将执行语句。
}
如果布尔表达式的计算结果为true,则将执行if代码块,否则将执行代码块。下图显示了if … else语句的流程图。
if块保护条件表达式。如果布尔表达式的计算结果为true,则执行与if语句关联的块。if块后面可以跟一个可选的else语句。如果表达式的计算结果为false,则执行与else块关联的指令块。
var num = 12;
if (num % 2==0) {
print("Even");
} else {
print("Odd");
}
输出结果:
Even
else...if
语句
在 else…if 可用于检测多个条件。以下是相同的语法。
if (boolean_expression1) {
//如果expression1的计算结果为true,则返回语句
}
else if (boolean_expression2) {
//如果expression2的计算结果为true,则返回语句
}
else {
//如果expression1和expression2都为false,则为语句
}
使用 if … else 语句时,请记住几点。
- 一个 if 可以有零或一个 else ,它必须在任何 else…if 之后。
- 一个 if 可以有0到多个 else…if ,他们必须在 else 之前。
- 一旦 else…if 成功,剩下的 else…if 或 else 将不被执行。
示例 - else…if
var num = 2;
if(num > 0) {
print("${(num)} is positive");
}else if(num < 0) {
print("${(num)} is negative");
} else {
print("${(num)} is neither positive nor negative");
}
成功执行上述代码后,将显示以下输出。
2 is positive
switch
语句
switch
语句计算表达式,将表达式的值与case
子句匹配,并执行与该case
相关的语句。
以下是语法。
switch(variable_expression) {
case constant_expr1: {
// statements;
}
break;
case constant_expr2: {
//statements;
}
break;
default: {
//statements;
}
break;
}
针对switch
中的所有情况测试 variable_expression 的值。如果变量与其中一种情况匹配,则执行相应的代码块。如果case
表达式与variable_expression的值不匹配,则默认块中的代码将关联。
以下规则适用于switch
语句
- switch中可以有任意数量的case语句。
- case语句只能包含常量。它不能是变量或表达式。
- variable_expression和常量表达式的数据类型必须匹配。
- 除非你在每个代码块之后放置一个中断,否则执行会流入下一个块。
- case表达式必须是唯一的。
- 默认块是可选的。
switch ... case
语句的流程图如下
示例 - switch…案例
var grade = "A";
switch(grade) {
case "A": { print("Excellent"); }
break;
case "B": { print("Good"); }
break;
case "C": { print("Fair"); }
break;
case "D": { print("Poor"); }
break;
default: { print("Invalid choice"); }
break;
}
该示例根据常量集(A,B,C,D和E)验证变量等级的值,并执行相应的块。如果变量中的值与上面提到的任何常量都不匹配,则将执行默认
成功执行上述代码后,将显示以下输出 。
Excellent