我对 ruby 非常陌生,我正在尝试遵循有关如何构建矩形的说明。我正在尽可能仔细地跟踪,我三次检查我输入的内容是否正确。我什至重新输入了它。问题似乎到了最后。我的终端不断出现错误:Shapes.rb:25:语法错误,意外的输入结束,期待keyword_end
谁能帮我?我认为这可能是 1.upto 的问题,但我不确定。太感谢了!!
puts "Welcome to Shapes"
print "How big do you want your shape? "
shape_size = gets
shape_size = shape_size.chomp
print "Outside letter: "
outside_letter = gets
outside_letter = outside_letter.chomp
print " Inside Letter: "
inside_letter = gets
inside_letter = inside_letter.chomp
puts "About to draw a shape #{shape_size} big"
puts "using #{outside_letter} for the edge"
puts "and #{inside_letter} for the inside"
width = shape_size
height=shape_size
1.upto(height) do |row|
if row==1
puts outside_letter * width
elsif row==height
puts outside_letter * width
else
middle= inside_letter * (width-2)
puts
"#{outside_letter}#{middle}#{outside_letter}"
end
你还需要一份end
:
puts "Welcome to Shapes"
print "How big do you want your shape? "
shape_size = gets
shape_size = shape_size.chomp
print "Outside letter: "
outside_letter = gets
outside_letter = outside_letter.chomp
print " Inside Letter: "
inside_letter = gets
inside_letter = inside_letter.chomp
puts "About to draw a shape #{shape_size} big"
puts "using #{outside_letter} for the edge"
puts "and #{inside_letter} for the inside"
width = shape_size
height=shape_size
1.upto(height) do |row|
if row==1
puts outside_letter * width
elsif row==height
puts outside_letter * width
else
middle= inside_letter * (width-2)
puts
"#{outside_letter}#{middle}#{outside_letter}"
end
end # <--- here
既然你在这里学习,我觉得有必要添加更多细节:
当你有一个块时,例如1.upto(height) do |row|
在你的代码中,总是需要一个end
,因为它是一个块(将其视为一个代码单元)。在该块中,您正在为可枚举(例如数组)中的每个项目执行代码。在这种情况下,您的枚举是一个由 1 到 的值之间的每个整数组成的数组height
:
2.3.0 :005 > 1.upto(4) do |number|
2.3.0 :006 > puts "The number is: #{number}"
2.3.0 :007?> end
The number is: 1
The number is: 2
The number is: 3
The number is: 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)