在编程中,循环用于只要满足指定条件就重复执行一段代码块。循环可以帮助您节省时间、避免重复的代码块,并编写更简洁的代码。
在 R 中,有三种类型的循环:
- while 循环
- for 循环
- repeat 循环
R while 循环
当您不知道代码块需要重复执行的确切次数时,可以使用 while
循环。R 中 while
循环的基本语法是:
while (test_expression) {
# block of code
}
- 这里,首先评估
test_expression
。 - 如果结果为
TRUE
,则执行while
循环内部的代码块。 - 执行完成后,再次评估
test_expression
,并重复相同的过程,直到test_expression
评估为FALSE
。 - 当布尔表达式返回
FALSE
时,while
循环将终止。
示例 1:R while 循环
让我们看一个计算前十个自然数之和的程序。
# variable to store current number
number = 1
# variable to store current sum
sum = 0
# while loop to calculate sum
while(number <= 10) {
# calculate sum
sum = sum + number
# increment number by 1
number = number + 1
}
print(sum)
输出
[1] 55
在这里,我们声明了两个变量:number 和 sum。while
语句内部的 test_condition
是 number <= 10
。
这意味着只要 number 的值小于或等于 10
,while
循环将继续执行并计算 sum。
示例 2:带有 break 语句的 while 循环
R 中的 break
语句可用于停止 while
循环的执行,即使测试表达式为 TRUE
。例如,
number = 1
# while loop to print numbers from 1 to 5
while(number <= 10) {
print(number)
# increment number by 1
number = number + 1
# break if number is 6
if (number == 6) {
break
}
}
输出
[1] 1 [1] 2 [1] 3 [1] 4 [1] 5
在这个程序中,我们在 while
循环内部使用了 break
语句,一旦 if
语句内部的条件评估为 TRUE
,它就会中断循环。
if (number == 6) {
break
}
因此,当 number 变量等于 6
时,循环终止。所以,只打印了数字 1 到 5。
示例 3:带有 next 语句的 while 循环
您可以在 while
循环中使用 next
语句来跳过一次迭代,即使测试条件为 TRUE
。例如,
number = 1
# while loop to print odd number between 1 to 10
while(number <= 10) {
# skip iteration if number is even
if (number %% 2 == 0) {
number = number + 1
next
}
# print number if odd
print(number)
# increment number by 1
number = number + 1
}
输出
[1] 1 [1] 3 [1] 5 [1] 7 [1] 9
这个程序只打印范围在 1 到 10 之间的奇数。为此,我们在 while
循环内部使用了 if
语句来检查 number 是否能被 2 整除。
这里,
- 如果 number 能被 2 整除,那么它的值就简单地增加 1,并使用
next
语句跳过这次迭代。 - 如果 number 不能被 2 整除,则打印该变量并将其值增加 1。