2012-01-30 9 views
-1

私は学習からプログラミングまで、以下のルビーコードを持っています。私はそれを理解していますが、それは私に変数good_answerと答えを削除しようとしています。私はループを終了するためにリターンを使用しなければならないと言います。私はどこから始めるべきかわからない。すべての手がかりは素晴らしいだろう、私はそれを把握したい。基本的なRubyプログラミング

def ask question 
    good_answer = false 
    while (not good_answer) 
    puts question 
    reply = gets.chomp.downcase 

    if (reply == 'yes' or reply == 'no') 
     good_answer = true 
     if reply == 'yes' 
     answer = true 
     else 
     answer = false 
     end 
    else 
     puts 'Please answer "yes" or "no".' 
    end 
    end #while ends here 

    answer #This is what we return (true of false) 
end 

puts 
ask('Do you like eating Cheese?') 
ask('Are you crazy?') 
rain = ask 'Do you like rain?' 

puts rain 
+0

なぜあなたは本から自己学習するときにカンニングしようとしていますか?あなたが教えたことを理解するまで、あなたが練習が入っている章をもう一度読んでおくのが一番です。 – millimoose

+1

私はなぜそれほど多くのダウン投票があったのか分かりません。また、OPが「チート」しようとしているとは思っていません。彼はちょうど正しい方向への動きを求めています。私は今までにいくつかのひどいテキストブックを読みました。 – SimonMayer

+1

私は騙されようとしていません。私はちょうどそれをスキップすることができますが、私はむしろ問題を解決する方法を学ぶだろう。 –

答えて

1

私はちょうどそれを言うだろう - answerが使用されている場所でreturnを置く:

def ask question 
    while (true) 
    puts question 
    reply = gets.chomp.downcase 

    if (reply == 'yes' or reply == 'no') 
     if reply == 'yes' 
     return true 
     else 
     return false 
     end 
    else 
     puts 'Please answer "yes" or "no".' 
    end 
    end #while ends here 
end