学习来源:https://www.w3cschool.cn/r/r_packages.html 决策:if else switch
循环:for while repeat
循环控制:next break

  1. 决策:
    R提供了3种类型的决策语句:

决策语句

含义

if

单分支结构

if…else

二分支结构

if…else if…else

多分支结构

switch

switch语句允许根据值列表测试变量的相等性。

在R中创建if语句的基本语法:
 if(boolean_expression) {
 // statement(s) will execute if the boolean expression is true.
 }在R中创建if … else语句的基本语法:
 if(boolean_expression) {
 // statement(s) will execute if the boolean expression is true.
 } else {
 // statement(s) will execute if the boolean expression is false.
 }在R中创建if … else if … else语句的基本语法:
 if(boolean_expression 1) {
 // Executes when the boolean expression 1 is true.
 } else if( boolean_expression 2) {
 // Executes when the boolean expression 2 is true.
 } else if( boolean_expression 3) {
 // Executes when the boolean expression 3 is true.
 } else {
 // executes when none of the above condition is true.
 }在R中创建switch语句的基本语法:
 switch(expression, case1, case2, case3…)

switch语句详解:
(1)switch语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且针对每种情况检查打开的变量

(2)以下规则适用于switch语句:

如果expression的值不是字符串,那么它被强制为整数。

在交换机中可以有任意数量的case语句。 每个案例后面都跟要比较的值和冒号。

如果整数的值在1和nargs() - 1(参数的最大数目)之间,则对case条件的相应元素求值并返回结果。

如果表达式求值为字符串,那么该字符串与元素的名称匹配。

如果有多个匹配,则返回第一个匹配元素。

无默认参数可用。

在没有匹配的情况下,如果有一个未命名的元素…它的值被返回。 (如果有多个这样的参数,则返回错误。)

(3)switch语句的流程图:

if r语言 嵌套 r语言if循环语句案例_循环


(4)例子:

> x <- switch(
   3,
   "first",
   "second",
   "third",
   "fourth"
)
print(x)
> [1] "third"

2. 循环
(1)R编程语言提供以下3个种类的循环来处理循环需求

循环类型

描述

repeat循环

repeat循环重复执行相同的代码,直到满足停止条件。

while循环

while循环的关键点是循环可能永远不会运行。 当条件被测试并且结果为false时,循环体将被跳过,while循环之后的第一条语句将被执行。

for循环

for循环是一种重复控制结构,允许有效地编写需要执行特定次数的循环。它不限于整数,或者输入中的偶数。 它可以传递字符向量,逻辑向量,列表或表达式。

在R中创建Repeat循环的基本语法是 -
repeat {
commands
if(condition) {
break
}
}

在R中创建while循环的基本语法是 -
while (test_expression) {
statement
}

在R中创建一个for循环语句的基本语法是 -
for (test_expression) {
statement
}

>#repeat循环
v <- c("Hello","loop")
cnt <- 2
repeat {
   print(v)
   cnt <- cnt+1
   
   if(cnt > 5) {
      break
   }
}
>[1] "Hello" "loop" 
[1] "Hello" "loop" 
[1] "Hello" "loop" 
[1] "Hello" "loop" 
>
>#while循环
>v <- c("Hello","while loop")
cnt <- 2
while (cnt < 7) {
   print(v)
   cnt = cnt + 1
}
>[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
[1] "Hello"  "while loop"
>
>#for循环
>v <- LETTERS[1:4]
for ( i in v) {
   print(i)
}
>[1] "A"
[1] "B"
[1] "C"
[1] "D"

(2)循环控制语句

控制语句

含义

break

终止循环语句,并将执行转移到循环后立即执行的语句。

next

next等同于其他语言的continue

> v <- LETTERS[1:6]
for ( i in v) {
   
   if (i == "D") {
      next
   }
   print(i)
}
>
>[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"