- 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 - 决策
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,以及如果条件被确定为真则要执行的一条或多条语句,以及可选的如果条件成立则要执行的其他语句。条件被确定为假。
下面显示的是大多数编程语言中典型决策结构的一般形式 -
先生编号 | 声明及说明 |
---|---|
1 | if 语句 if语句由一个布尔表达式后跟一个或多个语句组成。 |
2 | if...else 语句 if语句后面可以跟一个可选的else语句,该语句在布尔表达式为 false 时执行。 |
3 | else...if 和嵌套 if 语句 您可以在另一个if或else if语句中使用一个if或else if语句。 |
4 | 匹配语句 匹配语句允许根据值列表测试变量。 |
如果语句
if ...else结构在执行代码块之前评估条件。
句法
if boolean_expression { // statement(s) will execute if the boolean expression is true }
如果布尔表达式的计算结果为 true,则 if 语句内的代码块将被执行。如果布尔表达式的计算结果为 false,则将执行 if 语句末尾(右大括号之后)后的第一组代码。
fn main(){ let num:i32 = 5; if num > 0 { println!("number is positive") ; } }
上面的示例将打印number is Positive,因为 if 块指定的条件为 true。
if else 语句
if后面可以跟一个可选的else块。如果 if 语句测试的布尔表达式的计算结果为 false,则 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块保护条件表达式。如果布尔表达式的计算结果为 true,则执行与 if 语句关联的块。
if 块后面可以跟一个可选的 else 语句。如果表达式的计算结果为 false,则执行与 else 块关联的指令块。
插图 - 简单的 if...else
fn main() { let num = 12; if num % 2==0 { println!("Even"); } else { println!("Odd"); } }
上面的示例打印变量中的值是偶数还是奇数。if 块检查该值是否能被 2 整除以确定是否相同。这是上面代码的输出 -
Even
嵌套如果
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 语句检查当前值是否与值列表中的匹配,这与 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