Rust if...else 语句
if和if..else语句的使用:在 Rust 中,if和if..else语句用于基于特定条件执行不同的代码块。- 布尔表达式的概念:布尔表达式在 Rust 中用于返回
true或false,并用于if表达式的条件判断。 - Rust 中的多条件和嵌套判断:使用
if..else if表达式可以评估多个条件,而嵌套if..else用于更复杂的条件逻辑。
在计算机编程中,我们使用 if 和 if..else 语句/表达式来在特定条件满足时运行代码块。
例如,可以根据学生的总成绩为某科目分配成绩。
- 如果成绩超过 90,分配等级 A
- 如果成绩超过 75,分配等级 B
- 如果成绩超过 65,分配等级 C
布尔表达式
在了解 if..else 表达式之前,让我们快速了解一下布尔表达式。
布尔表达式是一个表达式(产生一个值),它返回 true 或 false(布尔值)作为输出。例如,
fn main() {
let x = 7;
// 布尔表达式的例子
let condition = x > 5;
println!("condition is {}", condition);
}
输出
condition is true
这里,x > 5 是一个布尔表达式,用于检查变量 x 的值是否大于 5。由于变量 x 的值 7 大于 5,condition 变量被赋值为 true。
因此,输出为 condition is true。
Rust 中的 if 表达式
if 表达式仅在条件为 true 时执行代码块。Rust 中 if 表达式的语法是:
if condition {
// 要执行的代码块
}
如果条件评估为
true-if块内的代码将被执行false-if块内的代码将不会被执行

示例:if 表达式
fn main() {
let number = 10;
// 检查数字是否大于零的条件
if number > 0 {
println!("{} is greater than 0", number);
}
println!("End of program")
}
输出
10 is greater than 0
End of program
在上面的示例中,我们创建了一个变量 number 并检查其值是否大于 0。注意条件,
number > 0
由于变量 number 大于 0,条件评估为 true。因此,我们看到大括号内的代码块被执行。
println!("{} is greater than 0", number);
假设我们将 number 变量改为负整数,比如 -2。
let number = -2;
输出将会是:
End of program
这是因为条件 **-2 > 0** 的计算结果为 false,所以 if 的主体被跳过了。
Rust 中的 if..else 表达式
if 表达式有时也可以包含一个可选的 else 表达式。如果 if 中的条件为 false,则执行 else 表达式。
Rust 中 if..else 表达式的语法是:
if 条件 {
// 当条件为真时执行
} else {
// 当条件为假时执行
}
- 如果条件计算结果为
true,
if内的代码块将被执行else内的代码块将被跳过
- 如果条件计算结果为
false,
if内的代码块将被跳过else内的代码块将被执行

示例:if..else 表达式
fn main() {
let number = -2;
// 检查数字是否大于零的条件
if number > 0 {
println!("{} 大于 0", number);
} else {
println!("{} 小于或等于 0", number);
}
}
输出
-2 小于或等于 0
这里,变量 number 的值为 -2,所以条件 number > 0 的计算结果为 false。因此,else 语句内的代码块被执行了。
如果我们将变量更改为正数,比如说 10。
let number = 10;
程序的输出将会是:
10 大于 0
这里,条件 number > 0 的计算结果为 true。因此,if 语句内的代码块被执行了。
Rust 中的 if..else if 表达式
我们可以通过结合 if 和 else 在 else if 表达式中评估多个条件。如果你需要做出多于两个的选择,if..else if 表达式特别有帮助。if 和 else if 表达式的语法看起来像这样:
if 条件1 {
// 代码块 1
} else if 条件2 {
// 代码块 2
} else {
// 代码块 3
}
这里, 1. 如果 condition1 评估为真,
- 将执行
code block 1 - 跳过
code block 2和code block 3
2. 如果 condition2 评估为真,
- 将执行
code block 2 - 跳过
code block 1和code block 3
3. 如果 condition1 和 condition2 都评估为假,
- 将执行
code block 3 - 跳过
code block 1和code block 2

示例:if..else if..else 条件语句
fn main() {
let number = -2;
if number > 0 {
println!("{} 是正数", number);
} else if number < 0 {
println!("{} 是负数", number);
} else {
println!("{} 等于 0", number);
}
}
输出
-2 是负数
在这个例子中,我们检查一个数字是正数、负数还是零。因为 number = -2 小于 0,满足条件:number < 0,因此执行了 else if 语句块。
嵌套 if..else
你可以在其他 if..else 表达式的主体中使用 if..else 表达式。这在 Rust 中被称为嵌套 if..else。
if outer_condition {
// 外部代码块
if inner_condition {
// 内部代码块 1
} else {
// 内部代码块 2
}
}
// if 代码块之外
示例:嵌套 if..else
fn main() {
let number = -2;
if number < 0 {
// 如果外部条件评估为真,则评估内部条件
if number == -2 {
println!("当前数字是 -2");
} else {
println!("当前数字是 {}", number);
}
}
}
输出
当前数字是 -2
在这个例子中,
- 外部条件
number < 0评估为true,因为变量number被赋值为-2。因此,执行了外部代码块。 - 外部代码块包含一个内部条件来检查
number == -2,这也是true。因此,执行了内部if表达式的内部代码块。 - 内部代码块向屏幕打印 "
当前数字是 -2"。 - 因为
inner_condition评估为true,所以跳过了内部else语句块。