Я использую этот код, чтобы позволить пользователю вводить имена, в то время как программа сохраняет их в массиве, пока они не введут пустую строку (они должны нажимать ввод после каждого имени):
people = []
info = 'a' # must fill variable with something, otherwise loop won't execute
while not info.empty?
info = gets.chomp
people += [Person.new(info)] if not info.empty?
end
Этот код будет выглядеть намного лучше в цикле do ... while:
people = []
do
info = gets.chomp
people += [Person.new(info)] if not info.empty?
while not info.empty?
В этом коде мне не нужно присваивать информацию какой-либо случайной строке.
К сожалению, этот тип цикла не существует в Ruby. Кто-нибудь может предложить лучший способ сделать это?
loop do; ...; break if ...; end
?