Rust - 决策



决策结构要求程序员指定一个或多个条件,由程序进行评估或测试,以及在条件确定为真时要执行的语句或语句,以及可选地在条件确定为假时要执行的其他语句。

下面显示的是大多数编程语言中常见决策结构的一般形式:

Decision-making
序号 语句及描述
1

if 语句

if 语句由一个布尔表达式后跟一个或多个语句组成。

2

if...else 语句

if 语句后面可以跟一个可选的 else 语句,当布尔表达式为假时执行。

3

else...if 和嵌套 if 语句

您可以在另一个 ifelse if 语句内使用一个 ifelse 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
}

流程图

FlowChart

if 块保护条件表达式。如果布尔表达式计算结果为真,则执行与 if 语句关联的块。

if 块后面可以跟一个可选的 else 语句。如果表达式计算结果为假,则执行与 else 块关联的指令块。

示例 - 简单 if…else

fn main() {
   let num = 12;
   if num % 2==0 {
      println!("Even");
   } else {
      println!("Odd");
   }
}

上面的例子打印变量中的值是偶数还是奇数。if 块检查值是否能被 2 整除以确定这一点。以下是上述代码的输出:

Even

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

嵌套 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
广告