跳到主要内容

R语言 if...else 语句

提示
  1. if语句的功能和应用:在R语言中,if语句允许创建基于条件的决策程序,用于在满足特定条件时执行不同的代码块。
  2. if...else和if...else if...else语句:R支持if...else和if...else if...else语句,前者用于两种情况的决策,后者用于多条件决策。
  3. 嵌套if...else语句:在R中,可以嵌套使用if...else语句,这允许在一个条件内部指定更多条件,以实现更复杂的逻辑判断和决策。

在计算机编程中,if 语句允许我们创建决策程序。

一个决策程序在一个条件下运行一块代码,在不同的条件下运行另一块代码。例如,

  • 如果 年龄大于 18 岁,允许此人投票。
  • 如果 年龄不大于 18 岁,不允许此人投票。

R if 语句

if 语句的语法是:

if (测试表达式) {
# if 语句体
}

这里,测试表达式 是一个布尔表达式。它返回 TrueFalse。如果 测试表达式

  • True - 执行 if 语句体
  • False - 跳过 if 语句体

示例:R if 语句

x <- 3

# 检查 x 是否大于 0
if (x > 0) {
print("这个数字是正数")
}

print("在 if 语句之外")

输出

[1] "这个数字是正数"
[1] "在 if 语句之外"

在上面的程序中,测试条件 x > 0 是真的。因此,括号内的代码被执行。

注意: 如果你想了解更多关于测试条件的信息,请访问 R 布尔表达式

R if...else 语句

我们也可以在 if 语句中使用可选的 else 语句。if...else 语句的语法是:

if (测试表达式) {
# if 语句体
} else {
# else 语句体
}

if 语句评估括号内的 测试表达式

如果测试表达式为 True,

  • 执行 if 的语句体
  • 跳过 else 的语句体

如果测试表达式为 False

  • 执行 else 的语句体
  • 跳过 if 的语句体

示例:R if...else 语句

age <- 15

# 检查年龄是否大于 18
if (age > 18) {
print("你有资格投票。")
} else {
print("你不能投票。")
}

输出

[1] "你不能投票。"

在上述语句中,我们创建了一个名为 age 的变量。这里的测试表达式是

age > 18

由于 age15,测试表达式为 False。因此,执行了 else 语句体内的代码。

如果我们将变量改为另一个数字,比如 31

age <- 31

现在,如果我们运行程序,输出将是:

[1] "你有资格投票。"

示例:检查数字的正负

x <- 12

# 检查 x 是正数还是负数
if (x > 0) {
print("x 是一个正数")
} else {
print("x 是一个负数")
}

输出

[1] "x 是一个正数"

这里,由于 x > 0 的结果为 TRUEif 代码块中的代码被执行。并且,跳过了 else 代码块中的代码。

R if...else if...else 语句

如果您想测试多个条件,可以使用 if...else 语句中的可选 else if 语句。其语法为:

if(测试表达式1) {
# 代码块 1
} else if (测试表达式2){
# 代码块 2
} else {
# 代码块 3
}

这里,

  • 如果 测试表达式1 的结果为 True,则执行 代码块 1
  • 如果 测试表达式1 的结果为 False,则对 测试表达式2 进行求值。
  • 如果 测试表达式2 的结果为 True,则执行 代码块 2
  • 如果 测试表达式2 的结果为 False,则执行 代码块 3

示例:R if...else if...else 语句

x <- 0

# 检查 x 是正数还是负数或零
if (x > 0) {
print("x 是一个正数")
} else if (x < 0) {
print("x 是一个负数")
} else {
print("x 是零")
}

输出

[1] "x 是零"

在上面的例子中,我们创建了一个名为 x 的变量,值为 0。这里,我们有两个测试表达式:

  • if (x > 0) - 检查 x 是否大于 0
  • else if (x < 0) - 检查 x 是否小于 0

这里,两个测试条件都是 False。因此,else 代码块内的语句被执行。

R 中的嵌套 if...else 语句

您可以在 R 的 if...else 代码块内部嵌套 if...else 语句。这被称为嵌套 if...else 语句。

这允许您在条件内指定条件。例如,

x <- 20

# 检查 x 是否为正数
if (x > 0) {

# 检查 x 是偶数还是奇数
if (x %% 2 == 0) {
print("x 是一个正的偶数")
} else {
print("x 是一个正的奇数")
}

# 如果 x 不是正数,则执行
} else {

# 检查 x 是偶数还是奇数
if (x %% 2 == 0) {
print("x 是一个负的偶数")
} else {
print("x 是一个负的奇数")
}
}

输出

[1] "x 是一个正的偶数"

在这个程序中,外层的 if...else 代码块检查 x 是正数还是负数。如果 x 大于 0,则执行外层 if 代码块中的代码。

否则,执行外层 else 代码块中的代码。

if (x > 0) {
... .. ...
} else {
... .. ...
}

内层 if...else 代码块检查 x 是偶数还是奇数。如果 x 能被 2 整除,内层 if 代码块中的代码被执行。否则,执行内层 else 代码块中的代码。

if (x %% 2 == 0) {
... .. ...
} else {
... .. ...
}