📅  最后修改于: 2020-11-02 04:14:44             🧑  作者: Mango
决策结构要求程序员指定一个或多个要由程序评估或测试的条件,如果确定条件为真,则指定要执行的一个或多个语句,如果条件为真,则可选地指定要执行的其他语句。条件确定为假。
下面显示的是大多数编程语言中常见的典型决策结构的一般形式-
Sr.No | Statement & Description |
---|---|
1 |
if statement An if statement consists of a Boolean expression followed by one or more statements. |
2 |
if…else statement An if statement can be followed by an optional else statement, which executes when the Boolean expression is false. |
3 |
else…if and nested ifstatement You can use one if or else if statement inside another if or else if statement(s). |
4 |
match statement A match statement allows a variable to be tested against a list of values. |
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") ;
}
}
上面的示例将打印数字为正,因为if块指定的条件为true。
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语句。如果表达式的值为假,则执行与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语句时,有几点需要牢记。
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