Rust if...else

在计算机编程中,我们使用 ifif..else 语句/表达式在满足特定条件时运行一段代码。

例如,可以根据学生的总分为其分配科目成绩。

  • 如果分数高于 90,则分配 A 级
  • 如果分数高于 75,则分配 B 级
  • 如果分数高于 65,则分配 C 级

布尔表达式

在学习 if..else 表达式之前,让我们快速了解一下布尔表达式。

布尔表达式是一个表达式(产生一个值),它返回 truefalse(布尔值)作为输出。例如,

fn main() {
    let x = 7;

    // example of boolean expression
    let condition = x > 5;

    println!("condition is {}", condition);
}

输出

condition is true

在这里,x > 5 是一个布尔表达式,它检查变量 x 的值是否大于 5。由于 7,变量 x 的值大于 5,因此 condition 变量被赋值为 true

因此,可以看到输出为“condition is true”。


Rust if 表达式

if 表达式仅当条件为 true 时执行代码块。Rust 中 if 表达式的语法是:

if condition {
    // code block to execute
}

如果条件计算结果为:

  • true - 将执行 if 块内的代码
  • false - 将不执行 if 块内的代码
Working of if expression in Rust
Rust 中 if 表达式的工作原理

示例:if 表达式

fn main() {
    let number = 10;
   
    // condition to check if number is greater than zero
    if number > 0 {
        println!("{} is greater than 0", number);
    }
   
    println!("End of program")
}

输出

10 is greater than 0
End of program

在上面的示例中,我们创建了一个变量 number 并检查它的值是否大于 0。请注意条件

number > 0

由于变量 number 大于 0,因此该条件计算结果为 true。因此,我们看到了大括号内的代码块被执行。

println!("{} is greater than 0", number); 

假设我们将 number 变量更改为一个负整数。例如 -2

let number = -2;

输出将是:

End of program

这是因为条件 -2 > 0的计算结果为 false,并且跳过了 if 的主体。


Rust if..else 表达式

if 表达式有时也可以包含一个可选的 else 表达式。如果 if 中的条件为 false,则执行 else 表达式。

Rust 中 if..else 表达式的语法是:

if condition {
    // executes when condition is true
} else {
    // executes when condition is false
}

1. 如果条件计算结果为 true

  • 将执行 if 内的代码块
  • 将跳过 else 内的代码块

2. 如果条件计算结果为 false

  • 将跳过 if 块内的代码
  • 将执行 else 块内的代码
Working of if..else expression in Rust
Rust 中 if..else 表达式的工作原理

示例:if..else 表达式

fn main() {
   let number = -2;
   
   // condition to check if number is greater than zero
   if number > 0 {
       println!("{} is greater than 0", number);
   } else {
       println!("{} is less than or equal to 0", number);
   }
}

输出

-2 is less than or equal to 0

在这里,变量 number 的值为 -2,因此条件 number > 0 的计算结果为 false。因此,将执行 else 语句内的代码块。

如果我们把变量改为一个正数。比如 10。

let number = 10;

程序的输出将是:

10 is greater than 0

在这里,条件 number > 0 的计算结果为 true。因此,将执行 if 语句内的代码块。


Rust if..else if 表达式

通过将 ifelse 组合成 else if 表达式,我们可以评估多个条件。如果需要做出两个以上的选择,if..else if 表达式特别有用。ifelse if 表达式的语法如下:

if condition1 {
    // code block 1
} else if condition2 {
    // code block 2
} else {
    // code block 3
}

这里,

1. 如果 condition1 计算结果为 true,

  • 将执行 code block 1
  • 将跳过 code block 2code block 3

2. 如果 condition2 计算结果为 true,

  • 将执行 code block 2
  • 将跳过 code block 1code block 3

3. 如果 condition1 和 condition2 的计算结果均为 false,

  • 将执行 code block 3
  • 将跳过 code block 1code block 2
Working of if..else if expression in Rust
Rust 中 if..else if 表达式的工作原理

示例:if..else if..else 条件

fn main() {
    let number = -2;
   
    if number > 0 {
        println!("{} is positive", number);
    } else if number < 0 {
        println!("{} is negative", number);
    } else {
        println!("{} is equal to 0", number);
    }
}

输出

-2 is negative

在此示例中,我们检查一个数字是正数、负数还是零。因为 number = -2 小于 0,满足条件number < 0,因此将执行 else if 块。


嵌套 if..else

您可以在其他 if..else 表达式的主体中使用 if..else 表达式。它在 Rust 中被称为嵌套 if..else

if outer_condition {
    // outer code block

    if inner_condition {
        // inner code block 1
    } else {
        // inner code block 2
    }
}

// outside if code block

示例:嵌套 if..else

fn main() {
    let number = -2;
    
    if number < 0 {
        // if outer condition evaluates to true evaluate the inner condition
        if number == -2 {
            println!("The current number is -2");
        } else {
            println!("The current number is {}", number);
        }
    }
}

输出

The current number is -2

在此示例中,

  1. 因为 number 变量被赋值为 -2,所以外部条件 number < 0 的计算结果为 true。因此,将评估外部代码块。
  2. 外部代码块包含一个内部条件来检查 number == -2,这再次为 true。因此,将执行内部 if 表达式的内部代码块。
  3. 内部代码块将“The current number is -2”打印到屏幕。
  4. 由于 inner_condition 的计算结果为 true,因此将跳过内部 else 块。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战