- Rust 教程
- Rust - 首页
- Rust - 简介
- Rust - 环境搭建
- Rust - HelloWorld 示例
- Rust - 数据类型
- Rust - 变量
- Rust - 常量
- Rust - 字符串
- Rust - 运算符
- Rust - 决策
- Rust - 循环
- Rust - 函数
- Rust - 元组
- Rust - 数组
- Rust - 所有权
- Rust - 借用
- Rust - 切片
- Rust - 结构体
- Rust - 枚举
- Rust - 模块
- Rust - 集合
- Rust - 错误处理
- Rust - 泛型
- Rust - 输入输出
- Rust - 文件输入/输出
- Rust - 包管理器
- Rust - 迭代器和闭包
- Rust - 智能指针
- Rust - 并发
- Rust 有用资源
- Rust - 快速指南
- Rust - 有用资源
- Rust - 讨论
Rust - 决策
决策结构要求程序员指定一个或多个条件,由程序进行评估或测试,以及在条件确定为真时要执行的语句或语句,以及可选地在条件确定为假时要执行的其他语句。
下面显示的是大多数编程语言中常见决策结构的一般形式:
| 序号 | 语句及描述 |
|---|---|
| 1 | if 语句 if 语句由一个布尔表达式后跟一个或多个语句组成。 |
| 2 | if...else 语句 if 语句后面可以跟一个可选的 else 语句,当布尔表达式为假时执行。 |
| 3 | else...if 和嵌套 if 语句 您可以在另一个 if 或 else if 语句内使用一个 if 或 else if 语句。 |
| 4 | match 语句 match 语句允许将变量与值列表进行比较。 |
If 语句
if…else 结构在执行代码块之前评估条件。
语法
if boolean_expression {
// statement(s) will execute if the boolean expression is true
}
如果布尔表达式计算结果为真,则将执行 if 语句内的代码块。如果布尔表达式计算结果为假,则将执行 if 语句结束后的第一组代码(在闭合花括号之后)。
fn main(){
let num:i32 = 5;
if num > 0 {
println!("number is positive") ;
}
}
上面的例子将打印number is positive,因为 if 块指定的条件为真。
if else 语句
if 后面可以跟一个可选的 else 块。如果 if 语句测试的布尔表达式计算结果为假,则将执行 else 块。
语法
if boolean_expression {
// statement(s) will execute if the boolean expression is true
} else {
// statement(s) will execute if the boolean expression is false
}
流程图
if 块保护条件表达式。如果布尔表达式计算结果为真,则执行与 if 语句关联的块。
if 块后面可以跟一个可选的 else 语句。如果表达式计算结果为假,则执行与 else 块关联的指令块。
示例 - 简单 if…else
fn main() {
let num = 12;
if num % 2==0 {
println!("Even");
} else {
println!("Odd");
}
}
上面的例子打印变量中的值是偶数还是奇数。if 块检查值是否能被 2 整除以确定这一点。以下是上述代码的输出:
Even
嵌套 If
else…if 梯用于测试多个条件。语法如下所示:
语法
if boolean_expression1 {
//statements if the expression1 evaluates to true
} else if boolean_expression2 {
//statements if the expression2 evaluates to true
} else {
//statements if both expression1 and expression2 result to false
}
使用 if…else…if 和 else 语句时,需要牢记以下几点。
- 一个 if 可以有零个或一个 else,并且它必须位于任何 else..if 之后。
- 一个 if 可以有零到多个 else..if,并且它们必须位于 else 之前。
- 一旦 else..if 成功,就不会再测试任何剩余的 else..if 或 else。
示例:else…if 梯
fn main() {
let num = 2 ;
if num > 0 {
println!("{} is positive",num);
} else if num < 0 {
println!("{} is negative",num);
} else {
println!("{} is neither positive nor negative",num) ;
}
}
代码片段显示值是正数、负数还是零。
输出
2 is positive
Match 语句
match 语句检查当前值是否与值列表中的某个值匹配,这与 C 语言中的 switch 语句非常相似。首先,请注意,match 关键字后面的表达式不必用括号括起来。
语法如下所示。
let expressionResult = match variable_expression {
constant_expr1 => {
//statements;
},
constant_expr2 => {
//statements;
},
_ => {
//default
}
};
在下面给出的示例中,state_code 与值列表MH, KL, KA, GA进行匹配 - 如果找到任何匹配项,则将字符串值返回给变量state。如果未找到匹配项,则默认情况 _ 匹配并返回值Unkown。
fn main(){
let state_code = "MH";
let state = match state_code {
"MH" => {println!("Found match for MH"); "Maharashtra"},
"KL" => "Kerala",
"KA" => "Karnadaka",
"GA" => "Goa",
_ => "Unknown"
};
println!("State name is {}",state);
}
输出
Found match for MH State name is Maharashtra