Я написал следующий код в Ruby, который принимает данные от пользователя, касающиеся самолета и деталей полета, и отображает вводимые пользователем данные в виде массива в терминале. Однако программа читается в четыре раза. Какие изменения я могу внести, чтобы программа подсказывала пользователю, в скольких плоскостях они хотят ввести, а затем прочитать это количество раз? Например, если пользователь вводит 3, программа считывает ввод 3 раза. Я также получаю следующую ошибку:
Traceback (последний вызов последний): 2: from plane.rb: 68: in <main>'
1: from plane.rb:65:in
main 'plane.rb: 56: in print_planes': undefined method
length' для ноль: NilClass (NoMethodError)
require './input_functions'
class Plane
attr_accessor :id, :number, :origin, :destination
def initialize (id, number, origin, destination)
@id=id
@number = number
@origin = origin
@destination = destination
end
end
def read_plane()
plane_id = read_integer("Enter plane id:")
plane_number = read_string("Enter flight name:")
plane_origin = read_string("Enter origin airport:")
plane_destination = read_string("Enter destination airport:")
plane = Plane.new()
plane.id = plane_id
plane.number = plane_number
plane.origin = plane_origin
plane.destination = plane_destination
return plane
end
def read_planes()
planes=Array.new()
count=0
while (count<4)
planes<<read_plane()
count+=1
end
end
def print_plane(plane)
puts ("Plane id "+plane.id)
puts ("Flight "+plane.number)
puts ("Origin "+plane.origin)
puts ("Destination "+plane.destination)
end
def print_planes(planes)
index = 0
while (index<planes.length)
puts planes[index]
index+=1
end
end
def main()
planes = read_planes()
print_planes(planes)
end
main()