2010年4月17日 星期六

Ruby 快速筆記: 流程控制

流程控制都差不多,一般語言該有的都有

if-else 敘述

if weight > 80
    puts "You are too fat!"
elsif weight > 60
    puts "You are ok"
else
    puts "You are too thin!"
end

While範例

Echo程式,會重複你輸入的字句
while line = gets
    puts line
end

For Loop

印出1~10的平方,形式相當簡潔
for i in 1..10
    print i*i
end

# 1 4 9 16 25 ...

倒裝句

比較特別的一點,就是從Perl借來的倒裝句法(後置條件)
可以創造出近似英文敘述的語句,相當漂亮。
puts "Good Job" if price<100
puts "Level Up!" if exp>10000
例如我們想把陣列內元素全部依序pop出來
array = [1,3,5]
while not array.empty?
    puts array.pop
end

#上面那幾行意義完全等同這一句
puts array.pop while not array.empty?
事實上還有個 until loop,剛好判斷條件跟while相反
所以這樣寫效果也一樣
puts array.pop until array.empty?