📅  最后修改于: 2023-12-03 14:46:52.882000             🧑  作者: Mango
在 R 编程中,可以使用不同类型的决策语句来根据条件执行特定的操作。这些决策语句包括 if、if-else、if-else-if 阶梯、嵌套 if-else 和 switch。
if 语句用于检查某个条件是否为真,并在条件为真时执行相应的代码段。if 语句的语法如下:
if (condition) {
# code to be executed if condition is TRUE
}
其中,condition
是一个逻辑表达式,执行代码段的条件为真时为 TRUE
,否则为 FALSE
。在 if 语句中,condition
必须为逻辑表达式或逻辑向量。
以下是一个使用 if 语句的示例:
x <- 2
if (x > 1) {
print("x is greater than 1")
}
在这个例子中,由于 x
的值为 2,因此 x > 1
的结果为 TRUE
,这将导致 if 语句中的代码段被执行,打印出 x is greater than 1
。
if-else 语句在 if 语句的基础上添加了 else 子句,以便在条件不成立时执行其他代码。if-else 语句的语法如下:
if (condition) {
# code to be executed if condition is TRUE
} else {
# code to be executed if condition is FALSE
}
在 if-else 语句中,当 condition
的结果为 TRUE
时,执行 if 代码段中的代码,否则执行 else 代码段中的代码。
以下是一个使用 if-else 语句的示例:
x <- 0
if (x > 1) {
print("x is greater than 1")
} else {
print("x is less than or equal to 1")
}
在这个例子中,由于 x
的值为 0,因此 x > 1
的结果为 FALSE
,这将导致 else 代码段中的代码被执行,打印出 x is less than or equal to 1
。
if-else-if 阶梯是一系列的 if 和 else-if 语句,用于区分多个条件。if-else-if 阶梯的语法如下:
if (condition1) {
# code to be executed if condition1 is TRUE
} else if (condition2) {
# code to be executed if condition2 is TRUE
} else {
# code to be executed if all conditions are FALSE
}
在 if-else-if 阶梯中,当 condition1
的结果为 TRUE
时,执行 if 代码段中的代码,否则检查下一个条件,即 condition2
。如果 condition2
的结果为 TRUE
,执行 else-if 代码段中的代码,否则执行 else 代码段中的代码。
以下是一个使用 if-else-if 阶梯的示例:
x <- 0
if (x > 1) {
print("x is greater than 1")
} else if (x == 1) {
print("x is equal to 1")
} else {
print("x is less than 1")
}
在这个例子中,由于 x
的值为 0,因此 x > 1
的结果为 FALSE
,x == 1
的结果也为 FALSE
,这将导致 else 代码段中的代码被执行,打印出 x is less than 1
。
嵌套 if-else 语句是用于嵌套多个 if 和 else 语句的方法。通过嵌套,可以使代码更加复杂和灵活。嵌套 if-else 语句的语法如下:
if (condition1) {
# code to be executed if condition1 is TRUE
if (condition2) {
# code to be executed if both condition1 and condition2 are TRUE
} else {
# code to be executed if condition1 is TRUE but condition2 is FALSE
}
} else {
# code to be executed if condition1 is FALSE
}
在嵌套 if-else 语句中,首先检查 condition1
是否为 TRUE
。如果是,则检查 condition2
是否为 TRUE
。如果 condition1
和 condition2
都为 TRUE
,执行内部 if 语句中的代码,否则执行内部 else 语句中的代码。如果 condition1
不为 TRUE
,执行外部 else 代码段中的代码。
以下是一个使用嵌套 if-else 语句的示例:
x <- 2
y <- 3
if (x == 2) {
if (y == 3) {
print("x is equal to 2 and y is equal to 3")
} else {
print("x is equal to 2 but y is not equal to 3")
}
} else {
print("x is not equal to 2")
}
在这个例子中,由于 x
的值为 2,y
的值为 3,因此两个条件都满足,打印出 x is equal to 2 and y is equal to 3
。
switch 语句是一种多分支语句,用于根据给定的条件执行特定的代码。switch 语句的语法如下:
switch(EXPR,
CASE1,
CASE2,
...
[DEFAULT])
其中,EXPR
是要测试的表达式,CASE1
、CASE2
等是要执行的代码块,DEFAULT
是可选项,表示 EXPR
的值不匹配任何条件时要执行的代码块。
以下是一个使用 switch 语句的示例:
x <- 1
result <- switch(x,
"First case",
"Second case",
"Third case")
print(result)
在这个例子中,由于 x
的值为 1,因此执行第一个 case 块中的代码,将 result
设为 First case
,最终打印出 First case
。如果 x
的值为 2,将执行第二个 case 块中的代码,将 result
设为 Second case
。如果 x
的值为其他值,将执行 default 块中的代码(如果存在)。