小白教程
所有教程
关于
Search
108.162.216.50
108.162.216.50
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“R 循环”的源代码
本页内容
上一节:
R_判断语句
下一节:
R_函数
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:R 循环}}[[Category:R 教程|8]] = R 循环 = 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图: R 语言提供的循环类型有: * repeat 循环 * while 循环 * for 循环 R 语言提供的循环控制语句有: * break 语句 * Next 语句 循环控制语句改变你代码的执行顺序,通过它你可以实现代码的跳转。 == 循环类型 == === repeat === repeat 循环会一直执行代码,直到条件语句为 true 时才退出循环,退出要使用到 break 语句。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> repeat { // 相关代码 if(condition) { break } } </sample> 以下实例在变量 cnt 为 5 时退出循环,cnt 为计数变量: <sample title="" desc="" lang="r" hererun="1"> v <- c("Google","xiaoBai") cnt <- 2 repeat { print(v) cnt <- cnt+1 if(cnt > 5) { break } } </sample> 执行以上代码,输入结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" </sample> === while === 只要给定的条件为 true,R 语言中的 while 循环语句会重复执行一个目标语句。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> while(condition) { statement(s); } </sample> 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。 condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。 以下实例在在变量 cnt 小于 7 时输出 while 语句块中的内容,cnt 为计数变量: <sample title="" desc="" lang="r" hererun="1"> v <- c("Google","xiaoBai") cnt <- 2 while (cnt < 7) { print(v) cnt = cnt + 1 } </sample> 执行以上代码,输入结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" </sample> === for === R 编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> for (value in vector) { statements } </sample> R 语言的 for 循环特别灵活,不仅可以循环整数变量,还可以对字符向量,逻辑向量,列表等数据类型进行迭代。 以下实例输出 26 个字母对前面四个字母: <sample title="" desc="" lang="r" hererun="1"> v <- LETTERS[1:4] for ( i in v) { print(i) } </sample> 执行以上代码,输入结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "A" [1] "B" [1] "C" [1] "D" </sample> == 循环控制 == === break === R 语言的 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句。 如果你使用循环嵌套,break 语句将停止最内层循环的执行,并开始执行的外层的循环语句。 break 也常用于 switch 语句中。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> break </sample> 以下实例在变量 cnt 为 5 时使用 break 退出循环,cnt 为计数变量: <sample title="" desc="" lang="r" hererun="1"> v <- c("Google","xiaoBai") cnt <- 2 repeat { print(v) cnt <- cnt+1 if(cnt > 5) { break } } </sample> 执行以上代码,输入结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" [1] "Google" "xiaoBai" </sample> === next === next 语句用于跳过当前循环,开始下一次循环(类似其他语言的 continue)。 语法格式如下: <sample title="" desc="" lang="r" hererun="1"> next </sample> 以下实例输出 26 个字母的前面 6 个字母,在字母为 D 的时候跳过当前的循环,进行下一次循环: <sample title="" desc="" lang="r" hererun="1"> v <- LETTERS[1:6] for ( i in v) { if (i == "D") { # D 不会输出,跳过这次循环,进入下一次 next } print(i) } </sample> 执行以上代码,输入结果为: <sample title="" desc="" lang="r" hererun="1"> [1] "A" [1] "B" [1] "C" [1] "E" [1] "F" </sample>
返回至“
R 循环
”。
上一节:
R_判断语句
下一节:
R_函数