2011-04-15 86 views
1

因此前幾天我決定嘗試學習Ruby,它實際上一直很好。我一直在IRB中大部分時間都在擺弄,直到我能找到一個非平凡的程序來編寫代碼來測試我的知識。Ruby中的新功能 - IRB中的循環問題

不過,今天我遇到了一個While循環意想不到的問題,我希望你們能幫助我這個:

irb(main):001:0> i = 0 
=> 0 
irb(main):002:0> while (i < 1000) 
irb(main):003:1> i++ 
irb(main):004:1* end 
SyntaxError: (irb):4: syntax error, unexpected keyword_end 
     from C:/WINDOWS/Ruby/bin/irb:12:in `<main>' 

到底爲什麼不是這個工作,我很期待它來?根據this site我有正確的結構,所以我在這裏錯過了什麼?

我在Windows XP下運行Ruby 1.9.2,如果有任何幫助的話。

回答

12

i++是無效的紅寶石。你需要做i += 1

編輯: 請參閱Mladen關於解析器所見的內容的評論。

+1

這*是*有效的Ruby,這正是*爲什麼*錯誤信息非常混亂。 – 2011-04-15 16:52:08

1

Ruby不具有C風格增量(++)或減量(--)運算符。你想這樣的:

i = 0 
while(i < 1000) 
    i = i + 1 
end 
2

除非你的目的是具體瞭解如何while循環和整數加法/比較工作,你真正想要的是

1000.times do |i| 
end