Rubyチュートリアル 2日目
先日書いたRubyチュートリアルでわからなかった問題、shinさんのコメントもあって解決できました。 ばんざーい。
『do ... while』のような『begin ... end while』を使うと短くまとめられるけど、あと書いてて(downto使えばよかったよ!)とか思ったけども、あえてチュートリアルに書いてあることだけでつくってみた。
#! /usr/local/bin/ruby input = nil words = [] while input != "" input = gets.chomp words << input end # これがないとソートした後、変な位置に『""』の空白が入ってしまう words.pop # 最後の要素は比較する必要がないので数から除く (0..words.size-2).each{|i| # 先頭から順に比較。 最後の要素は比較する必要がないので数から除く(1つ後ろと比較するため) (i..words.size-2).each{|j| # 1つ後ろの要素と比較し、後ろのほうが小さければ交換 if words[j] > words[j+1] temp = words[j] words[j] = words[j+1] words[j+1] = temp end } } puts 'ソート結果' puts words
頑張ってやってみたんですが、『words.pop』がないと、
c css # ここに『""』が入る html java ruby
こんな風に表示がおかしくなってしまうのだ! なぜだー。
ソートのアルゴリズムは、はてなキーワードで見つけられた。ソートにもいろいろあるみたいです。
ということで、今日はここまで。
では皆さん、良いお年をお迎えください。