2013-09-25 2 views
0

у меня есть:Ruby: Как выйти из этого цикла

line = gets 
while line = gets 
    print line 
end 
puts 'out of loop' 

Как сделать линии return nil?

Обратите внимание, что на второй линии line=gets есть цель, поэтому, когда gets=nil, line=nil и все состояние становится ложным.

+0

Вы ждете пустую строку? Это должно работать нормально, когда ваш вход завершен EOF. – Ryan

+0

Как бы вы хотели выйти из цикла? Вы можете ввести пользователя в специальную строку или что угодно. – lurker

+0

Каково условие выхода из цикла? особый характер? вы должны поместить 'line = gets' внутри цикла while вместо условия – shawnzhu

ответ

2

Если вы имеете в виду «Как кто-то, вводящий из командной строки, как я могу это сделать?»: Вы нажмете ctrl-D.

Если вы имеете в виду «Как я могу выйти из этого цикла программно?»: Просто проверьте, будет ли какое-либо условие завершать цикл, и если оно верно, то break.

3

gets возвращает nil, когда он получает EOF (Конец файла).

Вы можете отправить свой терминал EOF, это делается нажатием Ctrl-D на Unix-подобной системе. или Ctrl-Z на Windows.

Код: IO#gets

Смежные вопросы