2012-04-17 124 views
1

我是相当新的编程,并正在努力学习R.我试图解决R中的经典“Fizzbuzz”问题,并已几乎想通了一种方式,但我的循环是打印两次。尝试调试和搜索,但我似乎无法找到任何东西。有什么建议么?For循环在R打印两次

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)) 

回答

2

因为您拨打print两次,一次在功能中,一次在循环中。在循环中删除print,它只打印一次。

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

谢谢。我敢肯定,在大多数情况下,解决方法很简单,我是个白痴。 – bstockton 2012-04-17 21:03:20

+3

@bstockton:不客气。别担心,我们都是白痴......只是在不同的主题。 ;) – 2012-04-17 21:07:36

1

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

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