Ruby新手 - 在IRB中循环问题

Mr.*_*ama 1 ruby

所以几天前我决定尝试学习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>'
Run Code Online (Sandbox Code Playgroud)

为什么这不正常,因为我期待它?根据这个网站我的结构是正确的,所以我在这里缺少什么?

我在Windows XP下运行Ruby 1.9.2,如果有任何帮助的话.

asm*_*asm 12

i++是无效的红宝石.你需要这样做i += 1.

编辑:请参阅Mladen关于解析器看到的内容的评论.

  • 不,它不是有效的Ruby.+在此上下文中是二元运算符,没有第二个操作数.鉴于上述情况,错误消息并不混淆.考虑一下:`同时为真; 我+结束了 (2认同)
  • @Andrew:`i +++++ 1`似乎被解析为`i +(+(+(+(+ 1))))`,`+`是有效的一元运算符,如`-`. (2认同)
  • 考虑一下,`++ i` _is_有效的Ruby.虽然它没有做Ruby移民可能期望的事情.;) (2认同)