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
语句块。