📜  R 编程中的控制语句

📅  最后修改于: 2022-05-13 01:54:21.284000             🧑  作者: Mango

R 编程中的控制语句

控制语句是用于根据语句中提供的条件控制程序的执行和流程的表达式。这些结构用于在评估变量后做出决定。在本文中,我们将通过示例讨论所有控制语句。

在 R 编程中,控制语句有以下 8 种类型:

  • 如果条件
  • if-else 条件
  • for 循环
  • 嵌套循环
  • while 循环
  • 重复和中断语句
  • 退货声明
  • 下一个声明

如果条件

此控制结构检查括号中提供的表达式是否为真。如果为真,则继续执行大括号 {} 中的语句。

句法:

if(expression){
    statements
    ....
    ....
}

例子:

x <- 100
  
if(x > 10){
print(paste(x, "is greater than 10"))
}

输出:

[1] "100 is greater than 10"

if-else 条件

它类似于if条件,但是当 if 条件中的测试表达式失败时,将执行else条件中的语句。

句法:

if(expression){
    statements
    ....
    ....
}
else{
    statements
    ....
    ....
}

例子:

x <- 5
  
# Check value is less than or greater than 10
if(x > 10){
  print(paste(x, "is greater than 10"))
}else{
  print(paste(x, "is less than 10"))
}

输出:

[1] "5 is less than 10"

for 循环

它是一种循环或重复执行的语句序列,直到达到退出条件。

句法:

for(value in vector){
    statements
    ....
    ....
}

例子:

x <- letters[4:10]
  
for(i in x){
  print(i)
}

输出:

[1] "d"
[1] "e"
[1] "f"
[1] "g"
[1] "h"
[1] "i"
[1] "j"

嵌套循环

嵌套循环类似于简单循环。嵌套意味着循环内循环。此外,嵌套循环用于操作矩阵。

例子:

# Defining matrix
m <- matrix(2:15, 2)
  
for (r in seq(nrow(m))) {
  for (c in seq(ncol(m))) {
    print(m[r, c])
  }
}


输出:

[1] 2
[1] 4
[1] 6
[1] 8
[1] 10
[1] 12
[1] 14
[1] 3
[1] 5
[1] 7
[1] 9
[1] 11
[1] 13
[1] 15

while 循环

while 循环是另一种循环,直到满足条件为止。在执行循环体之前首先检查测试表达式。

句法:

while(expression){
    statement
    ....
    ....
}

例子:

x = 1
  
# Print 1 to 5
while(x <= 5){
  print(x)
  x = x + 1
}

输出:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

重复循环和中断语句

repeat是一个循环,可以多次迭代,但没有退出条件从循环中出来。因此,break 语句用于退出循环。 break语句可用于任何类型的循环以退出循环。

句法:

repeat { 
   statements
   ....
   .... 
   if(expression) {
      break
   }
}

例子:

x = 1
  
# Print 1 to 5
repeat{
  print(x)
  x = x + 1
  if(x > 5){
    break
   }
}


输出:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5

退货声明

return语句用于返回执行函数的结果并将控制权返回给调用函数。

句法:

return(expression)

例子:

# Checks value is either positive, negative or zero
func <- function(x){
  if(x > 0){
    return("Positive")
  }else if(x < 0){
    return("Negative")
  }else{
    return("Zero")
  }
}
  
func(1)
func(0)
func(-1)

输出:

[1] "Positive"
[1] "Zero"
[1] "Negative"

下一个声明

next语句用于跳过当前迭代而不执行进一步的语句,并继续下一个迭代循环而不终止循环。

例子:

# Defining vector
x <- 1:10
  
# Print even numbers
for(i in x){
  if(i%%2 != 0){
    next #Jumps to next loop
  }
  print(i)
}

输出:

[1] 2
[1] 4
[1] 6
[1] 8
[1] 10