R语言教程:循环语句

2022-08-0211:22:46编程语言入门到精通Comments2,982 views字数 1725阅读模式

需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

编程语言提供了更为复杂执行路径的多种控制结构。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

R语言教程:循环语句

R 语言提供的循环类型有:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

  • repeat 循环
  • while 循环
  • for 循环

R 语言提供的循环控制语句有:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

  • break 语句
  • Next 语句

循环控制语句改变你代码的执行顺序,通过它你可以实现代码的跳转。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

循环类型

repeat

repeat 循环会一直执行代码,直到条件语句为 true 时才退出循环,退出要使用到 break 语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

repeat { 
    // 相关代码 
    if(condition) {
       break
    }
}

以下实例在变量 cnt 为 5 时退出循环,cnt 为计数变量:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

实例

v <- c("Google","Runoob")
cnt <- 2文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

repeat {
print(v)
cnt <- cnt+1文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

if(cnt > 5) {
break
}
}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

执行以上代码,输入结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

while

只要给定的条件为 true,R 语言中的 while 循环语句会重复执行一个目标语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

while(condition)
{
   statement(s);
}

在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

以下实例在在变量 cnt 小于 7 时输出 while 语句块中的内容,cnt 为计数变量:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

实例

v <- c("Google","Runoob")
cnt <- 2文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

while (cnt < 7) {
print(v)
cnt = cnt + 1
}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

执行以上代码,输入结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

for

R 编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

for (value in vector) {
    statements
}

R 语言的 for 循环特别灵活,不仅可以循环整数变量,还可以对字符向量,逻辑向量,列表等数据类型进行迭代。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

以下实例输出 26 个字母对前面四个字母:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

实例

v <- LETTERS[1:4]
for ( i in v) {
print(i)
}

执行以上代码,输入结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

[1] "A"
[1] "B"
[1] "C"
[1] "D"

循环控制

break

R 语言的 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

如果你使用循环嵌套,break 语句将停止最内层循环的执行,并开始执行的外层的循环语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

break 也常用于 switch 语句中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

break

以下实例在变量 cnt 为 5 时使用 break 退出循环,cnt 为计数变量:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

实例

v <- c("Google","Runoob")
cnt <- 2文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

repeat {
print(v)
cnt <- cnt+1文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

if(cnt > 5) {
break
}
}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

执行以上代码,输入结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"
[1] "Google" "Runoob"

next

next 语句用于跳过当前循环,开始下一次循环(类似其他语言的 continue)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

next

以下实例输出 26 个字母的前面 6 个字母,在字母为 D 的时候跳过当前的循环,进行下一次循环:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

实例

v <- LETTERS[1:6]
for ( i in v) {文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

if (i == "D") {  # D 不会输出,跳过这次循环,进入下一次
next
}
print(i)
}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

执行以上代码,输入结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html

[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26428.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26428.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定