📜  R Switch语句

📅  最后修改于: 2021-01-08 09:32:25             🧑  作者: Mango

R Switch声明

switch语句是一种选择控制机制,它允许表达式的值通过map和search更改程序执行的控制流。

使用switch语句代替long if语句,该if语句将变量与多个整数值进行比较。这是一个多路分支语句,它提供了一种简单的方法来分派代码的不同部分的执行。该代码基于表达式的值。

此语句允许针对值列表对变量进行相等性测试。 switch语句有点复杂。为了理解它,我们有一些关键点如下:

  • 如果表达式类型是一个<字符>,该字符串被匹配到所列出的情况。
  • 如果存在多个匹配项,则使用第一个match元素。
  • 没有默认情况。
  • 如果不匹配大小写,则使用未命名的大小写。

基本上可以通过两种方式选择一种情况:

1)基于索引

如果字符是像字符向量这样的值,并且表达式的计算结果是一个数字,则表达式的结果将用作选择大小写的索引。

2)基于匹配值

如果案例同时具有案例值和输出值,例如[“ case_1” =“ value1”],则表达式值将与案例值匹配。如果符合条件,则输出相应的值。

If-else语句的基本语法如下:

switch(expression, case1, case2, case3....)

流程图

例子1

x <- switch(
3,
"Shubham",
"Nishka",
"Gunjan",    
"Sumit"
)
print(x)

输出:

例子2

ax= 1
bx = 2
y = switch(
    ax+bx,
    "Hello, Shubham",
    "Hello Arpita",
    "Hello Vaishali",
    "Hello Nishka"
)
print (y)

输出:

例子3

y = "18"
x = switch(
    y,
    "9"="Hello Arpita",
    "12"="Hello Vaishali",
    "18"="Hello Nishka",
    "21"="Hello Shubham"
)
 
print (x)

输出:

例子4

x= "2"
y="1"
a = switch(
    paste(x,y,sep=""),
    "9"="Hello Arpita",
    "12"="Hello Vaishali",
    "18"="Hello Nishka",
    "21"="Hello Shubham"
)
 
print (a)

输出:

例子5

y = "18"
a=10
b=2
x = switch(
    y,
    "9"=cat("Addition=",a+b),
    "12"=cat("Subtraction =",a-b),
    "18"=cat("Division= ",a/b),
    "21"=cat("multiplication =",a*b)
)

print (x)

输出: