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

こんな風に表示がおかしくなってしまうのだ! なぜだー。
ソートのアルゴリズムは、はてなキーワードで見つけられた。ソートにもいろいろあるみたいです。

ということで、今日はここまで。
では皆さん、良いお年をお迎えください。