📜  锈-决策

📅  最后修改于: 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语句时,有几点需要牢记。

  • 一个if可以有零个或另一个,并且必须在其他任何之后。
  • 一个if可以具有零个到多个else..if,并且它们必须位于else之前。
  • 如果else..if成功,则不会测试其余的else..if。

示例: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