循环,而不打印所有迭代

时间:2015-08-04 18:32:22

标签: r loops while-loop each

如何使用while来计算总和1 + 2 + 3 + ... + 300,并且每20次迭代打印一次结果。

我尝试在下面构建命令,但它不起作用:

soma_300=0
i=0
while(i< 300){
  if (i/20 == integer) {
    print(i)
  }
  i=i+1

  soma_300=soma_300+i
}
soma_300

3 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用其他类似的计数器

soma_300=0
i=0
c=0
while(i< 300) {
  i=i+1
  soma_300=soma_300 + i
  c=c+1
  if (c == 20) {
    print(i)
    c = 0
  }
}

答案 1 :(得分:1)

您想要检查i 20的其余部分是否为0。为此,您需要使用%%

soma_300=0
i=0

while(i < 300){
  if (i %% 20 == 0) {
    print(i)
  }
  i=i+1

  soma_300=soma_300+i
}
[1] 0
[1] 20
[1] 40
[1] 60
[1] 80
[1] 100
[1] 120
[1] 140
[1] 160
[1] 180
[1] 200
[1] 220
[1] 240
[1] 260
[1] 280

答案 2 :(得分:0)

我不熟悉R,但您可以尝试使用模数运算符%% 这似乎有效:

sum = 0
i = 0

while(i < 300) {
  if (i %% 20 == 0) {
    print(i)
  }
  i = i + 1

  sum = sum + i
}
sum