R语言 循环
R语言循环
可能有一种情况,当你需要执行一段代码几次。 通常,顺序执行语句。 首先执行函数中的第一个语句,然后执行第二个语句,依此类推。
编程语言提供允许更复杂的执行路径的各种控制结构。
循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式
R编程语言提供以下种类的循环来处理循环需求。 单击以下链接以检查其详细信息。
Sr.No. | 循环类型和描述 |
---|---|
1 | repeat循环 多次执行一系列语句,并简化管理循环变量的代码。 |
2 | while循环 在给定条件为真时,重复语句或语句组。 它在执行循环体之前测试条件。 |
3 | for循环 像while语句,不同之处在于它测试在循环体的端部的条件。 |
R语言 Repeat循环
Repeat循环重复执行相同的代码,直到满足停止条件。
语法
在R中创建Repeat循环的基本语法是
repeat {
commands
if(condition) {
break
}
}
流程图
例
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"
R语言 While循环
While循环一次又一次地执行相同的代码,直到满足停止条件。
语法
在R中创建while循环的基本语法是
while (test_expression) {
statement
}
流程图
while循环的关键点是循环可能永远不会运行。 当条件被测试并且结果为false时,循环体将被跳过,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"
R语言 For循环
For循环是一种重复控制结构,允许您有效地编写需要执行特定次数的循环。
语法
在R中创建一个for循环语句的基本语法是
for (test_expression) {
statement
}
流程图
R的for循环是特别灵活的,因为它们不限于整数,或者输入中的偶数。 我们可以传递字符向量,逻辑向量,列表或表达式。
例
v <- LETTERS[1:4]
for ( i in v) {
print(i)
}
当上面的代码被编译和执行时,它产生以下结果
[1] "A"
[1] "B"
[1] "C"
[1] "D"
循环控制语句
循环控制语句从其正常序列改变执行。 当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。
R语言支持以下控制语句。 单击以下链接以检查其详细信息。
Sr.No. | 控制语句和描述 |
---|---|
1 | break语句 终止循环语句,并将执行转移到循环后立即执行的语句。 |
2 | next语句 next语句模拟R语言switch语句的行为。 |
break语句
R语言中的break语句有以下两种用法:
当在循环中遇到break语句时,循环立即终止,并且程序控制在循环之后的下一语句处恢复。 它可以用于终止switch语句中的情况(在下一章中讨论)。
语法
在R中创建break语句的基本语法是
break
流程图
例
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"
next语句
R语言存在next语句,当我们想跳过循环的当前迭代而不终止它时便可使用next。 遇到next时,R解析器跳过本次迭代,并开始循环的下一次迭代。
语法
在R中创建Next语句的基本语法是
next
流程图
例
v <- LETTERS[1:6]
for ( i in v) {
if (i == "D") {
next
}
print(i)
}
当上面的代码被编译和执行时,它产生以下结果
[1] "A"
[1] "B"
[1] "C"
[1] "E"
[1] "F"