2012-04-17 224 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)