2

我对编程相当陌生,并且非常想学习 R。我正在尝试解决 R 中的经典“Fizzbuzz”问题,并且几乎找到了一种方法,但是我的循环打印了两次。尝试调试和搜索,但我似乎找不到任何东西。有什么建议么?

tl; dr 你知道为什么这个 for 循环会打印两次吗?

fizzbuzz = function(n){
  if ( n %% 15 == 0 ) {
    print("Fizzbuzz")
  } else
  if ( n %% 5 == 0 ) {
    print("buzz")
  } else
  if ( n %% 3 == 0 ) {
    print("Fizz")
  } else {
    print(n)
  }
}

for (a in 1:100)
  print(fizzbuzz(a))
4

2 回答 2

2

因为您调用print了两次,一次在函数中,一次在循环中。删除print循环中的,它只打印一次。

for (a in 1:100)
  fizzbuzz(a)
于 2012-04-17T20:39:50.767 回答
1

您正在打印 fizzbuzz 的结果并在函数内部。试试这个:

for (a in 1:100)
    fizzbuzz(a)
于 2012-04-17T20:40:33.830 回答