您的位置:

R语言for循环语句案例详解

一、for循环语句概述

for循环语句是一种常用的循环结构语句,通常可以实现重复执行某段程序的效果。它的基本格式如下:

for (var in vec) {
    expr
}

其中,var表示迭代变量,vec是一个向量,expr是需要重复执行的表达式。

下面以一个简单的案例来介绍for循环的应用:

# 输出1到10
for (i in 1:10) {
  print(i)
}

运行上述代码可以得到以下输出结果:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

二、for循环嵌套

为了实现更复杂的循环逻辑,可以使用for循环嵌套的写法,在内部循环中再嵌套一层for循环,在一定程度上可以提高代码的复用性和可读性。

下面是一个简单的嵌套案例:

# 输出所有KMP打手的组合
vec <- c("Kuuga","Agito","Ryuki")
for (i in vec) {
  for (j in vec) {
    cat(i, "和",j,"搭档!\n")
  }
}

运行上述代码可以得到以下输出结果:

Kuuga 和 Kuuga 搭档!
Kuuga 和 Agito 搭档!
Kuuga 和 Ryuki 搭档!
Agito 和 Kuuga 搭档!
Agito 和 Agito 搭档!
Agito 和 Ryuki 搭档!
Ryuki 和 Kuuga 搭档!
Ryuki 和 Agito 搭档!
Ryuki 和 Ryuki 搭档!

三、break和next的应用

在for循环中,有时候需要在满足一定条件的前提下终止循环或跳过当前循环,那么可以使用break和next结合if语句实现。

下面分别介绍这两个函数的用法:

(1)break

# 输出1到10的所有奇数,并在遇到5时停止循环
for (i in 1:10) {
  if (i%%2 == 0) {
    next
  }
  if (i == 5) {
    break
  }
  print(i)
}

运行上述代码可以得到以下输出结果:

[1] 1
[1] 3

(2)next

# 输出1到10的所有奇数,但跳过5
for (i in 1:10) {
  if (i%%2 == 0) {
    next
  }
  if (i == 5) {
    next
  }
  print(i)
}

运行上述代码可以得到以下输出结果:

[1] 1
[1] 3
[1] 7
[1] 9

四、在for循环中修改向量的值

在for循环中,可以直接修改向量的值,这可以用于实现一些特定的操作。下面以一个简单的案例来说明:

# 将向量中大于5的元素变为0
vec <- c(1,4,6,2,7,8,9,3,5)
for (i in 1:length(vec)) {
  if (vec[i] > 5) {
    vec[i] <- 0
  }
}
print(vec)

运行上述代码可以得到以下输出结果:

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

五、总结

本文从for循环的概述、for循环嵌套、break和next的应用、在for循环中修改向量的值四个方面介绍了R语言for循环语句的应用。通过本文的阅读,相信读者已经掌握了for循环的基本用法和常用技巧。