Logo
Section 1 / 6

什么是条件语句?

了解 Ruby 中的条件语句。

导入

什么是条件语句?

了解 Ruby 中的条件语句。

什么是条件语句?

有时,我们只希望在满足特定条件时才执行某个操作。有时,我们可能需要检查某个条件,然后根据结果执行不同的操作:如果条件为真,则执行某件事;否则,执行另一件事。

所有实用的编程语言都有表达这种逻辑的方式,在 Ruby 中,它的写法如下:

1number = 5 2 3if number.between?(1, 10) 4 puts "The number is between 1 and 10" 5elsif number.between?(11, 20) 6 puts "The number is between 11 and 20" 7else 8 puts "The number is bigger than 20" 9end

这段代码的作用和运行机制应该一目了然。

...
上述代码示例的流程图

详解

我们逐步来分析这段代码:

  1. 运行这段代码会输出 The number is between 1 and 10,因为第一行赋值给 number 变量的数值是 5。对于这个数值,方法调用 number.between?(1, 10) 返回 true。

  2. Ruby 执行 if 分支中的代码。if 分支是指 if 关键字所在行之后、缩进的部分(本例中为两个空格缩进)。一旦执行完该分支,Ruby 就不再处理后续内容。

  3. 如果我们将第一行的数字 5 改为 15 并重新运行代码,输出将是 The number is between 11 and 20。此时,Ruby 先检查第一个条件 number.between?(1, 10),返回 false。

  4. 因此,Ruby 跳过 if 分支,转而检查 elsif 行的条件 number.between?(11, 20)。由于 15 确实在 11 到 20 之间,该方法调用返回 true,Ruby 执行 elsif 分支并输出对应信息。执行完毕后,Ruby 同样忽略后续内容。

  5. 如果现在将数字从 15 改为 25 并再次运行代码,输出将是 The number is bigger than 20。Ruby 首先检查第一个条件,返回 false;接着检查第二个条件,也返回 false。于是 Ruby 执行 else 分支,并输出该消息。

elsif 和 else 分支

elsif 和 else 分支是可选的。我们可以有以下几种情况:

  • 仅包含 if 分支的条件语句;
  • 包含 if 和 else 分支的条件语句;
  • 包含 if 和一个或多个 elsif 分支(但没有 else 分支)的条件语句;
  • 也可以同时使用 if、elsif 和 else 分支。

但必须遵守以下规则:

  • 必须有一个 if 分支;
  • 可以有多个 elsif 分支;
  • 可以有一个 else 分支,且它必须是最后一个分支,紧接在 end 关键字之前。

变量

简写语法