If Else 语句让我们可以在 TRUE 或 FALSE 之间进行选择,当有多种选择时,我们使用嵌套的 If Else 语句。假设我们有 12 种选择,如果在这种情况下使用嵌套的 if-else,编程逻辑将难以理解。在 R 编程中,Switch 语句和 Else if 可以有效地处理这类问题。
Switch 语句在这个编程中的工作功能与 If 语句基本相同。如前所述,R 中的 Switch 语句可以有 n 个选项。因此,switch case 将表达式的值与位置上分配的值进行比较。如果表达式值和 case 值都匹配,则将执行该位置上的代码。让我们看一下 switch case 的语法以便更好地理解。
R Switch 语句语法
此编程语言中 Switch 的基本语法是
switch (Expression, "Option 1", "Option 2", "Option 3", ....., "Option N")
R 中 Switch case 语句的稍微复杂的语法方法是
switch (Expression,
"Option 1" = Execute when the expression result match Option 1,
"Option 2" = Execute when the expression result match Option 2,
"Option 3" = When the expression result match Option 3, Execute these,
....
....
"Option N" = When the expression result match Option N, Execute these lines,
Default Statements
)
- 表达式的值应该是整数或字符(我们也可以将表达式写成 n/2,但结果应该是整数或可转换为整数的值)。
- Switch 语句允许我们添加一个默认语句。如果表达式值或索引位置与任何 case 不匹配,则将执行默认语句。
- 如果有多个匹配项,将返回第一个匹配的语句。
我们已经在之前的 R 编程 文章中讨论了 Else If。因此,让我们在这里探讨 Switch 语句。我建议您参考 If Else、嵌套 If Else 和 If 子句 文章。
R Switch Case 语句流程图
以下截图将向您展示此 Switch Case 背后的流程图

- 如果 Case = Option 1,则执行 STATEMENT1。
- 如果 Case = Option 2,则执行 STATEMENT2。
- Case = Option 3,执行 STATEMENT3。
- 如果 Option 1、Option 2 和 Option 3 失败,则执行 DEFAULT STATEMENT。
Switch 语句示例
此程序向您展示了此编程语言中 Switch Case 的基本功能。
switch(3,
"Learn",
"R Programming",
"Tutorial",
"Gateway"
)

让我们更改值并查看结果。此示例使用 2 作为第一个参数,而不是 3。
switch(2,
"Learn",
"R Programming",
"Tutorial",
"Gateway"
)
"R Programming"
R Switch Case 示例
此程序允许用户输入任何 算术运算符,以使用此编程语言中的 Switch 语句执行算术运算。
# Switch Statement Example
number1 <- 30
number2 <- 20
operator <- readline(prompt="Please enter any ARITHMETIC OPERATOR You wish!: ")
switch(operator,
"+" = print(paste("Addition of two numbers is: ", number1 + number2)),
"-" = print(paste("Subtraction of two numbers is: ", number1 - number2)),
"*" = print(paste("Multiplication of two numbers is: ", number1 * number2)),
"^" = print(paste("Exponent of two numbers is: ", number1 ^ number2)),
"/" = print(paste("Division of two numbers is: ", number1 / number2)),
"%/%" = print(paste("Integer Division of two numbers is: ", number1 %/% number2)),
"%%" = print(paste("Division of two numbers is: ", number1 %% number2))
print("default statement")
)
输出 1:让我们输入 * 运算符并查看

输出 2:让我们输入错误的运算符 $ 来检查默认值。
"default statement"
首先,我们声明了两个变量 number1 和 number2,并分配了一些随机值:30 和 20
number1 <- 30 number2 <- 20
以下语句将允许用户输入一个字符(应为任何算术运算符)。我们将用户输入的字符分配给一个名为 operator 的变量。
operator <- readline(prompt="Please enter any ARITHMETIC OPERATOR You wish!: ")
接下来,我们使用 R Switch 语句,以 operator 作为选项。如果用户输入的 operator 是 +,则打印以下代码。
print(paste("Addition of two numbers is: ", number1 + number2))
如果用户输入的 operator 是 -,则将打印以下行。
print(paste("Subtraction of two numbers is: ", number1 - number2))
当用户输入的 operator 是 * 时,将打印以下消息。
print(paste("Multiplication of two numbers is: ", number1 * number2)
如果用户输入的 operator(字符)不在以上任何一个中,则可以分配一些默认语句,例如
switch(operator,
"+" = print(paste("Addition of two numbers is: ", number1 + number2)),
"-" = print(paste("Subtraction of two numbers is: ", number1 - number2)),
"*" = print(paste("Multiplication of two numbers is: ", number1 * number2)),
"^" = print(paste("Exponent of two numbers is: ", number1 ^ number2)),
"/" = print(paste("Division of two numbers is: ", number1 / number2)),
"%/%" = print(paste("Integer Division of two numbers is: ", number1 %/% number2)),
"%%" = print(paste("Division of two numbers is: ", number1 %% number2)),
print("default") # Default Statement
)