2014-09-25 105 views
0

我目前只是試圖圍繞這個例子的問題。我不明白它的語法。我不明白的i點以及它如何與result雖然循環... Ruby的語法

def pow(base, exponent) 
    result = 1 
    i = 1 
    while i <= exponent 
    result = result * base 
    i += 1 
    end 
    result 
end 

任何解釋,非常感謝!

回答

1

而需要做while(i <= exponent) do

是一個計數器,你可以取代

exponent.times { result = result * base } 

這個代碼將執行的數量,而(指數)倍的內容{}

結果最後是函數的結果,在ruby中如果你不把return子句將返回最後一行執行

+0

實際上'while'不需要做。 – Jesper 2014-09-25 06:58:51

+0

@Jesper:它需要*某種方法來告訴它,條件結束並且循環體開始。有兩種方法,不管是關鍵字'do'還是表達式分隔符(換行符或';')。所以,如果你想把它寫在一行上並且討厭分號,那麼'do'是你唯一的選擇。添加它永遠不會傷害,但如果不需要(如在這種情況下)這樣做是非慣用的。 – 2014-09-25 07:03:23

+1

@JörgWMittag是什麼讓你覺得我並沒有意識到這一點?我只是在駁斥「while」需要「做」這個明顯不正確的陳述。 – Jesper 2014-09-25 07:05:36