【问题标题】:For loop in R is printing twiceR中的for循环打印两次
【发布时间】:2012-04-17 20:35:43
【问题描述】:

我对编程还很陌生,并且非常想学习 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))

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我确信在大多数情况下都是如此;解决方法很简单,我是白痴。
    • @bstockton:不客气。别担心,我们都是白痴......只是在不同的主题。 ;)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-29
      • 2011-10-13
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多