Я создаю объект Лифт с экземпляром, который может проходить только между этажами один и двенадцать. Код работает для методов вверх и вниз, но я не могу заставить лифт не подниматься выше этажа 12 или ниже пола 1. Я пробовал использовать, если @floor> = 12, но была синтаксическая ошибка. Я уверен, что это просто, но я новичок в Ruby.Использование инструкции if или if для переменной экземпляра (Ruby)
Вот код, который работает:
class Elevator
@@count = @floor
#The Constructor Method
def initialize(floor) #floor is an instance variable of the Elevator object.
@floor = floor
cheery_greeting
end
def cheery_greeting
puts "Hello my friend! would you like to go up or down?"
end
def self.notify()
"You are now on floor #{@@count}"
end
#accessor methods
def go_up
@floor += 1
notify
end
def go_down
@floor -= 1
notify
end
Я хочу, чтобы добавить разрыв так, что он останавливается, когда итерации достигают пола двенадцать, так что я написал, но это даже не ставит.
def floor_limit
if @@count == 12
puts "You're Way Too High!"
end
Я также попытался:
def go_up
unless @floor >= 12
@floor += 1
notify
end
Я собираюсь предположить, что вы исходите из Python, вы, кажется, исключаете утверждения 'end', чтобы закрыть свои блоки. Обе усилия, о которых вы говорите, вы попробовали, нужно «закончить» для условного и еще один «конец» для определения метода. – pjs