1

Ruby とコンピューター サイエンスのトピックを初めて学習しています。Chris Pine 著「Learn to program」という本を読んでいて、例について質問があります。

コードは次のとおりです。

def ask(question)                           # new method with paramater question
  while true                                # starts a loop
    puts question                           # puts the question on the screen
    reply = gets.chomp.downcase             # gets the question and makes it lower case

    if (reply == "yes" || reply == "no")    # if reply was yes or no 
      if reply == "yes"                     # nested if statement if yes answer == true
        answer = true                       # WHAT??
      else                                  # the else of the second if
        answer = false                      # WHAT?? why do we care about answer??
      end
      break                                 # Breaks the Loop
    else                                    # the else of the 1st if 
      puts ' Please answer "yes" or "no".'
    end
  end
  answer                                    # Why is answer here?
end

私の質問は、なぜ「答え」が必要なのですか? それがループにどのような影響を与えているかわかりません。while ループは true not answer に設定されています。

4

2 に答える 2

4

Ruby は最後に実行したステートメントを返します。事実上、それは書くことと同じです

return answer;

...C や Java などの言語で。

于 2013-08-16T20:23:32.230 に答える
0
end
 answer                                     #Why is answer here?
end

メソッドからanswer( または のいずれtrueか)の結果を返すためにあります。falseask

私の質問は、なぜ「答え」が必要なのですか?

answerメソッドの実行が完了するときに返されるブール値を保持するには、例に従って必要です。あなたのループは無限ループであり、ステートメントwhileによってのみ破ることができます。breakreply'yes''no'

于 2013-08-16T20:23:41.133 に答える