我已经写了找到“瓶子问题”的逻辑
module Bottle
class Operation
def input
puts 'Enter the number of bottles:'
num = gets.chomp.to_i
bottle_operation(num)
end
def bottle_operation(num)
while (num < 10) && (num > 0)
puts "#{num} bottles"
num -= 1
puts "One bottle open. #{num} bottles yet to be opened."
end
end
end
begin
res = Operation.new
res.input
end
end
由于不正确的使用方式,我被要求在模块外使用Begin和End块。这样我得到了以下错误
module Bottle
class Operation
def input
puts 'Enter the number of bottles:'
num = gets.chomp.to_i
bottle_operation(num)
end
def bottle_operation(num)
while (num < 10) && (num > 0)
puts "#{num} bottles"
num -= 1
puts "One bottle open. #{num} bottles yet to be opened."
end
end
end
end
begin
res = Operation.new
res.input
end
错误`
':未初始化的常量操作(NameError)
使用开始和结束块的正确方法是什么?使用方式和地点
答案 0 :(得分:3)
使用开始和结束块的正确方法是什么?使用方式和地点
通常您根本不使用begin
/ end
。
您的代码中的错误是在module
之外,类名必须完全合格。就是说,以下内容将解决此问题:
- res = Operation.new
+ res = Bottle::Operation.new
begin
/ end
while
/ until
中执行一个代码块(贷方为@Stefan); rescue
例外; ensure
块。总结:
begin
puts "[begin]"
raise "from [begin]"
rescue StandardError => e
puts "[rescue]"
puts e.message
ensure
puts "[ensure]"
end
#⇒ [begin]
# [rescue]
# from [begin]
# [ensure]