所以几天前我决定尝试学习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>'
为什么这不正常,因为我期待它?根据{{3}}我的结构是正确的,所以我在这里缺少什么?
我在Windows XP下运行Ruby 1.9.2,如果有任何帮助的话。
答案 0 :(得分:12)
i++
不是有效的红宝石。您需要i += 1
。
编辑: 请参阅Mladen关于解析器看到的内容的评论。
答案 1 :(得分:2)
Ruby没有C风格的增量(++
)或减量(--
)运算符。你想要这个:
i = 0
while(i < 1000)
i = i + 1 # Or i += 1
end
答案 2 :(得分:2)
除非你的目的是专门理解while循环和整数加法/比较是如何工作的,否则你真正想要的是
1000.times do |i|
end