R语言 if...else 语句
- if语句的功能和应用:在R语言中,if语句允许创建基于条件的决策程序,用于在满足特定条件时执行不同的代码块。
- if...else和if...else if...else语句:R支持if...else和if...else if...else语句,前者用于两种情况的决策,后者用于多条件决策。
- 嵌套if...else语句:在R中,可以嵌套使用if...else语句,这允许在一个条件内部指定更多条件,以实现更复杂的逻辑判断和决策。
在计算机编程中,if 语句允许我们创建决策程序。
一个决策程序在一个条件下运行一块代码,在不同的条件下运行另一块代码。例如,
- 如果 年龄大于 18 岁,允许此人投票。
- 如果 年龄不大于 18 岁,不允许此人投票。
R if 语句
if 语句的语法是:
if (测试表达式) {
# if 语句体
}
这里,测试表达式
是一个布尔表达式。它返回 True
或 False
。如果 测试表达式
是
- 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
由于 age
是 15,测试表达式为 False
。因此,执行了 else
语句体内的代码。
如果我们将变量改为另一个数字,比如 31。
age <- 31
现在,如果我们运行程序,输出将是:
[1] "你有资格投票。"
示例:检查数字的正负
x <- 12
# 检查 x 是正数还是负数
if (x > 0) {
print("x 是一个正数")
} else {
print("x 是一个负数")
}
输出
[1] "x 是一个正数"
这里,由于 x > 0
的结果为 TRUE
,if
代码块中的代码被执行。并且,跳过了 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
是否大于 0else 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 {
... .. ...
}