標籤:
注釋單行注釋就是 #多行注釋比較奇怪是 用 = begin 和 =end
#!/usr/bin/ruby -wputs "Hello, Ruby!"=begin這是一個多行注釋。可擴充至任意數量的行。但 =begin 和 =end 只能出現在第一行和最後一行。 =end
條件判斷
if conditional [then] code...[elsif conditional [then] code...]...[else code...]end
if 運算式用於條件執行。值 false 和 nil 為假,其他值都為真。請注意,Ruby 使用 elsif,不是使用 else if 和 elif。
通常我們省略保留字 then 。若想在一行內寫出完整的 if 式,則必須以 then 隔開條件式和程式區塊。如下所示:
if a == 4 then a = 7 end
執行個體
#!/usr/bin/ruby# -*- coding: UTF-8 -*-x=1if x > 2 puts "x 大於 2"elsif x <= 2 and x!=0 puts "x 是 1"else puts "無法得知 x 的值"end
Ruby迴圈文法
while conditional [do] codeend
或者
while conditional [:] codeend
文法中 do 或 : 可以省略不寫。但若要在一行內寫出 while 式,則必須以 do 或 : 隔開條件式或程式區塊。
文法
code while condition或者begin code end while conditional
until比較特殊的是 until 文法
until conditional [do] codeend
執行個體
#!/usr/bin/ruby# -*- coding: UTF-8 -*-$i = 0$num = 5until $i > $num do puts("在迴圈語句中 i = #$i" ) $i +=1;end
forfor一般來說是使用率最高的迴圈方式
for variable [, variable ...] in expression [do] codeend
比如
#!/usr/bin/ruby# -*- coding: UTF-8 -*-for i in 0..5 puts "局部變數的值為 #{i}"end
還可以這麼寫
#!/usr/bin/ruby# -*- coding: UTF-8 -*-(0..5).each do |i| puts "局部變數的值為 #{i}"end
next語句相當於 continue 語句redo可以重新開始迴圈,不過很容易造成死迴圈,不知道為什麼設計這個文法
#!/usr/bin/ruby# -*- coding: UTF-8 -*-for i in 0..5 if i < 2 then puts "局部變數的值為 #{i}" redo endend
這個會產生一個死迴圈retry語句如果 retry 出現在 begin 運算式的 rescue 子句中,則從 begin 主體的開頭重新開始。
begin do_something # 拋出的異常rescue # 處理錯誤 retry # 重新從 begin 開始end
如果 retry 出現在迭代內、塊內或者 for 運算式的主體內,則重新開始迭代調用。迭代的參數會重新評估。
for i in 1..5 retry if some_condition # 重新從 i == 1 開始end
執行個體
#!/usr/bin/ruby# -*- coding: UTF-8 -*-for i in 1..5 retry if i > 2 puts "局部變數的值為 #{i}"end
然後這段又是一個死迴圈
有趣的Ruby-學習筆記2