2014-11-19 4 views
0

Не могли бы вы помочь мне, пожалуйста?(Ruby) Counting in Loops

Я хочу написать Ruby-код таким образом, что когда я говорю слово «BYE!» 3 раза подряд завершается программа.

Мой код ниже

quotes = File.readlines('quotes.db') 
puts = "What?" 
print ">" 
request = gets.chomp 
while request != "BYE!" 
    puts quotes[rand(quotes.length)] 
    puts ">" 
    request = gets.chomp 
end 

Любой Я мог бы изменить код, чтобы следовать правилам, которые я хочу?

+3

Как вы пытались решить эту проблему? где застряли? –

ответ

0
puts 'If you type bye 3 times, this program will terminate' 

bye_counter = 0 
loop do 
    input = gets.chomp 
    if input == 'bye' 
    bye_counter += 1 
    else 
    bye_counter = 0 
    end 

    break if bye_counter == 3 
end 
+1

Добавьте ведущую строку, а также объясните, почему этот ответ будет работать. –

2

Проверьте, действительно ли это то, что вы хотите. и скажите, возникла ли какая-либо ошибка. это может быть грубый код

quotes = File.readlines('quotes.db') 
puts = "What?" 
print ">" 
counter = 0 
request = gets.chomp 
while counter < 3 
    counter += 1 if request.eqls?("BYE!") 
    puts quotes[rand(quotes.length)] 
    puts ">" 
    request = gets.chomp 
end 
0

Я хотел бы сделать что-то вроде этого:

quotes = File.readlines('quotes.db') 
counter = 0 

puts 'What?' 
loop do 
    print '>' 
    request = gets.chomp 

    if request == 'BYE!' 
    counter += 1 
    break if counter >= 3 
    else 
    counter = 0 
    end 

    puts quotes.sample 
end