在计算机编程中,if 语句允许我们创建决策程序。
决策程序在一种条件下运行一个代码块,在不同条件下运行另一个代码块。例如,
- 如果年龄大于 18 岁,则允许该人投票。
- 如果年龄不大于 18 岁,则不允许该人投票。
R if 语句
if 语句的语法是
if (test_expression) {
# body of if
}
这里,test_expression
是一个布尔表达式。它返回 True
或 False
。如果 test_expression
是
- True - if 语句的主体被执行
- False - if 语句的主体被跳过
示例:R if 语句
x <- 3
# check if x is greater than 0
if (x > 0) {
print("The number is positive")
}
print("Outside if statement")
输出
[1] "The number is positive" [1] "Outside if statement"
在上面的程序中,测试条件 x > 0 为真。因此,括号内的代码被执行。
注意:如果您想了解更多关于测试条件的信息,请访问R 布尔表达式。
R if...else 语句
我们还可以将可选的 else 语句与 if 语句一起使用。if...else 语句的语法是
if (test_expression) {
# body of if statement
} else {
# body of else statement
}
if 语句评估括号内的 test_expression。
如果 test_expression 为 True,
if
主体被执行else
主体被跳过
如果 test_expression 为 False
else
主体被执行if
主体被跳过
示例:R if...else 语句
age <- 15
# check if age is greater than 18
if (age > 18) {
print("You are eligible to vote.")
} else {
print("You cannot vote.")
}
输出
[1] "You cannot vote."
在上面的语句中,我们创建了一个名为 age 的变量。这里,测试表达式是
age > 18
由于 age 是 16,测试表达式是 False
。因此,else
语句内的代码被执行。
如果我们将变量更改为另一个数字。比如 31。
age <- 31
现在,如果运行程序,输出将是
[1] "You are eligible to vote."
示例:检查正数和负数
x <- 12
# check if x is positive or negative number
if (x > 0) {
print("x is a positive number")
} else {
print("x is a negative number")
}
输出
[1] "x is a positive number"
这里,由于 x > 0
评估为 TRUE
,所以 if
块内的代码被执行。而 else 块内的代码被跳过。
R if...else if...else 语句
如果您想测试多个条件,可以使用可选的 else if
语句以及您的 if...else
语句。语法是
if(test_expression1) {
# code block 1
} else if (test_expression2){
# code block 2
} else {
# code block 3
}
这里,
- 如果 test_expression1 评估为
True
,则执行 代码块 1。 - 如果 test_expression1 评估为
False
,则评估 test_expression2。- 如果 test_expression2 为
True
,则执行 代码块 2。 - 如果 test_expression2 为
False
,则执行 代码块 3。
- 如果 test_expression2 为
示例:R if...else if...else 语句
x <- 0
# check if x is positive or negative or zero
if (x > 0) {
print("x is a positive number")
} else if (x < 0) {
print("x is a negative number")
} else {
print("x is zero")
}
输出
[1] "x is zero"
在上面的示例中,我们创建了一个名为 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
# check if x is positive
if (x > 0) {
# check if x is even or odd
if (x %% 2 == 0) {
print("x is a positive even number")
} else {
print("x is a positive odd number")
}
# execute if x is not positive
} else {
# check if x is even or odd
if (x %% 2 == 0) {
print("x is a negative even number")
} else {
print("x is a negative odd number")
}
}
输出
[1] "x is a positive even number"
在此程序中,外部 if...else
块检查 x 是正数还是负数。如果 x 大于 0,则执行外部 if
块内的代码。
否则,执行外部 else
块内的代码。
if (x > 0) {
... .. ...
} else {
... .. ...
}
内部 if...else
块检查 x 是偶数还是奇数。如果 x 可以被 2 完全整除,则执行内部 if
块内的代码。否则,执行内部 else
块内的代码。
if (x %% 2 == 0) {
... .. ...
} else {
... .. ...
}