プログラミング初心者です。
文の中から最も長い単語を返すメソッドを表すプログラミングを書けという課題で、それの解答例の意味がよくわかりません。ご教授願います。
課題の原文は
Write a method that takes in a string. Return the longest word in the string. You may assume that the string contains only letters and spaces.
You may use the String split
method to aid you in your quest.
です。
解答例は
def longest_word(sentence) #longest_word(sentence)というメソッドを作る
words = sentence.split(" ") #文を配列のように単語単語に分ける
longest_word = nil #最も長い単語がない(つまり文がない)時にnilを返す
word_idx = 0 #1つ目の単語を0個目とする??
while word_idx < words.length #ある番目の単語<単語の文字数??の間繰り返す
current_word = words[word_idx] #現在の単語にある番目の単語を代入する
if longest_word == nil #もし最も長い単語ならnilを返して、下のコードを実行?? longest_word = current_word #最も長い単語として現在の単語を代入する elsif longest_word.length < current_word.length #もし上のif文の条件ではなく、最も長い単語の長さ<現在の単語の長さの場合、下のコードを実行 longest_word = current_word #最も長い単語として現在の単語を代入 end #if文を終わる word_idx += 1 #次の単語を見る
end #while文の終わり
return longest_word #longest_wordを返す
end #終わり
です。
自分なりの解説を解答のコードの右に#として書いてみました。正直曖昧ですが、??が付いているところが分からなかったところです。
??の部分をご教授願いたいです。宜しくお願いします。
最後にteratailで初めて質問させていただいたので、質問の仕方で改善するべき点があれば是非いってください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/17 06:02