R while 循环

在编程中,循环用于只要满足指定条件就重复执行一段代码块。循环可以帮助您节省时间、避免重复的代码块,并编写更简洁的代码。

在 R 中,有三种类型的循环:


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

在这里,我们声明了两个变量:numbersumwhile 语句内部的 test_conditionnumber <= 10

这意味着只要 number 的值小于或等于 10while 循环将继续执行并计算 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 时,循环终止。所以,只打印了数字 15


示例 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

这个程序只打印范围在 110 之间的奇数。为此,我们在 while 循环内部使用了 if 语句来检查 number 是否能被 2 整除。

这里,

  • 如果 number 能被 2 整除,那么它的值就简单地增加 1,并使用 next 语句跳过这次迭代。
  • 如果 number 不能被 2 整除,则打印该变量并将其值增加 1
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战