Rust 条件语句
条件语句的结构要求程序员指定一个或多个条件由程序进行评估或测试,以及一个或多个语句,如果条件被确定为真,则执行这些语句,另外,还可以选择性地执行其他语句,如果条件被确定为假。
下面是大多数编程语言中常见的条件语句结构的一般形式。
序号 | 描述 |
---|---|
1 | if语句 一个if语句包含一个布尔表达式,后面跟着一个或多个语句。 |
2 | if…else语句 一个if语句可以后跟一个可选的else语句,在布尔表达式为false时执行。 |
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
}
如果布尔表达式求值为true,则会执行if语句内的代码块。如果布尔表达式求值为false,则会执行if语句结束后(在闭合大括号之后)的第一组代码。
fn main(){
let num:i32 = 5;
if num > 0 {
println!("number is positive") ;
}
}
上面的示例将打印 number is positive ,因为if块指定的条件为真。
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 块用于保护条件表达式。如果布尔表达式的结果为真,则执行与 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
匹配语句
匹配语句用于检查当前值是否与一个值列表中的某个值匹配,这与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