2016-07-09 19 views
0

我正在經歷學習由克里斯派程序和卡住在練習聾人格拉德瑪。該計劃的目的是讓奶奶回答HUH?說出來,SONNY!除非你說了全部大寫的東西(在這種情況下,她回覆NO,NOT SINCE#{random year}!),或者如果你說連續三次迭代(在這種情況下程序結束)BYE。所以基本上這個程序會一直持續下去,除非你說BYE連續三次迭代。不能退出聾人奶奶的循環從學習到編程由克里斯派爾

while true 
    byes = 0 
    say_to_grandma = gets.chomp 
    if say_to_grandma == "BYE" 
    byes += 1 
    else 
    byes = 0 
    end 
    if byes == 3 
    abort 
    end 
    if say_to_grandma != say_to_grandma.upcase 
    puts "HUH?! SPEAK UP, SONNY!" 
    else 
    random_year = rand(90) + 1926 
    puts "NO, NOT SINCE #{random_year}!" 
    end 
end 

我無法解決的問題是結束程序。我進行了廣泛的研究,但找不到解決方案。我嘗試了退出並中止,但他們不像我預期的那樣工作。或者也許我的邏輯有問題。

+3

提示:你在哪裏設置'byes'爲0? –

+0

Ops。絕對「byes」不應該在那裏。 – HiFi

回答

0

爲了給這個問題一個答案實際着想,​​現在的OP已經理解了它,我會明確地陳述問題:

byes是在循環設置爲0。這意味着每一次迭代,不管你說了什麼或做了什麼,它都會在提示你再次說出某些內容之前將該數字重置爲0。要解決這個問題,只需將該行 - byes = 0 - 移至while之上的行。