Новое в Ruby - проблемы с циклом в IRB - PullRequest
1 голос
/ 15 апреля 2011

Итак, несколько дней назад я решил, что попробую выучить Ruby, и на самом деле все идет хорошо. В основном я возился с IRB, пока не нашел нетривиальную программу для кодирования, чтобы проверить свои знания.

Однако сегодня я столкнулся с неожиданной проблемой с циклом «Пока», и я надеялся, что вы все поможете мне с этим:

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>'

Почему именно это не работает, как я ожидаю? Согласно этому сайту у меня правильная структура, так что мне здесь не хватает?

Я использую Ruby 1.9.2 под Windows XP, если это поможет.

Ответы [ 3 ]

12 голосов
/ 15 апреля 2011

i++ не является действительным рубином. Вам нужно сделать i += 1.

Edit: См. Комментарий Младена о том, что видит парсер.

2 голосов
/ 15 апреля 2011

Если ваша цель не состоит в том, чтобы конкретно понять, как работают циклы и целочисленное сложение / сравнение, то вы действительно хотите

1000.times do |i|
end
2 голосов
/ 15 апреля 2011

Ruby не имеет операторов приращения в стиле C (++) или уменьшения (--).Вы хотите это:

i = 0
while(i < 1000)
  i = i + 1 # Or i += 1
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...