2010-08-05 2 views
3

Этот цикл не заканчивается после ввода x. Я действительно новичок в Ruby, и до сих пор, это так сильно отличается от того, что я узнал раньше - довольно интересно,Петля не заканчивается при проверке состояния

total = 0 
i = 0 

while ((number = gets) != "x") 
    total += number.to_i 
    i += 1 
end 

puts "\nAverage: " + (total/i).to_s 

Любая помощь очень ценится.

ответ

4

Потому что gets дает вам новую линию. Вам нужно chomp.

Try:

while ((number = gets.chomp) != "x") 

, и вы увидите, что он начинает работать:

pax> ruby testprog.rb 
1 
5 
33 
x 

Average: 13 
+0

работа отлично! Спасибо! – jn1kk

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