2

私はプログラミングにかなり慣れていないので、熱心に R を学ぼうとしています。R の古典的な「Fizzbuzz」問題を解決しようとしていますが、ほとんど方法を見つけましたが、私のループは 2 回出力されます。デバッグと検索を試みましたが、何も見つからないようです。助言がありますか?

tl;dr この for ループが 2 回出力される理由を知っていますか?

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関数内で 1 回、ループ内で 1 回、2 回呼び出すためです。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 に答える