R Switch 语句

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 ElseIf 子句 文章。

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"
)
R Switch Statement 1

让我们更改值并查看结果。此示例使用 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:让我们输入 * 运算符并查看

R Switch Statement 2

输出 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
)