5
Мой код выглядит следующим образом. Если я удалю последний end
, он скажет unexpected end of input
, если я положил end
, он говорит unexpected keyword end
. Я не вижу ничего плохого в следующем коде. Ты можешь?Ruby неожиданный конец ключевого слова, И неожиданный конец ввода
n = gets.chomp.to_i
array= Array.new(n, true)
while p<Math::sqrt(n) do
i=p
while (i<=n) do
array[i] = false # not a prime
i+=p
end
while array[p]!=true do
p++
end
end
Вы правы. однако это никоим образом не делает это хорошим сообщением об ошибке :( – mnagel
@mnagel вы не можете обвинять Ruby в этом. Ruby не может обрабатывать 'end' после' + '. Это проблема, с которой правильно исправляет ошибку Пользователь должен знать правильный синтаксис, он дает строку, на которой происходит ошибка. Это должно помочь вам отладить проблему. – Mischa
@ Миша, однако, с точки зрения удобства использования предупреждение «мы просто разбирали' + '(унарный плюс) после '+' (двоичный плюс), и, хотя это не ошибка, она не делает то, что вы хотите, чтобы это сделать ». Конечно, это нарушает обратную совместимость с' + - ++ --- +++ 1+ + 2 == 3' – mnagel