我使用的是ruby版本2.4.1,无法找到语法错误的原因
a = 5
while(a>0) do
a.times do |i|
puts i
end
a = a-1
end
以下是回溯
2.4.1 :022 > a = 5
=> 5
2.4.1 :023 > while(a>0) do
2.4.1 :024 > a.times do |i|
2.4.1 :025 > puts i
2.4.1 :026?> end
SyntaxError: (irb):26: syntax error, unexpected end-of-input, expecting keyword_end
from /usr/share/rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
2.4.1 :027 > a = a-1
=> 4
2.4.1 :028 > end
SyntaxError: (irb):28: syntax error, unexpected keyword_end
from /usr/share/rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
当我在while循环之后写一些像puts
语句之类的东西然后它可以工作。为什么会出现这种语法错误?
答案 0 :(得分:1)
通过在do语句
前面添加;
来解决问题
while(a>0) do;
或者您可以跳过可选的do
a = 5
while(a>0)
a.times do |i|
puts i
end
a = a-1
end