Source From Here
Preface
要某條件成立時才進行某些動作,Ruby 提供了 if運算式,一個例子如下:
這 個範例中,預設的檔案名稱是 default.properties,如果使用者有提供命令列引數,則 ARGV[0] 就會有值,而不會是 nil,在 if 判斷中會被當作真,所以if條件成立,將 filename 設定為使用者所提供的命令列引數。
if 與 unless
if 可以搭配 else,在 if 條件不成立時,執行 else 中定義的程式碼,所以上例也可以這麼寫:
如果有多重判斷,則可以使用 if..elsif..else 結構。例如:
如果要在一行中撰寫 if 判斷,則 if 之後必須使用 then 或分號。例如:
Ruby 中程式碼需換行的地方,也可以使用分號,所以也可以這麼寫:
if 有個可傳回值的使用方式:
上例中,只有在 if 判斷成立時,filename 才會被設定為 ARGV[0]。
在 Ruby 中有 if,也有 unless。if 條件成立才會執行區塊內容,unless 則相反,條件不成立才會執行區塊,if 是如果條件成立就執行區塊,unless是除非條件成立,否則就執行區塊。
一個例子如下:
這個例子中,使用者必須輸入 0 以上的正數,如果使用者輸入負數,要轉為正數,所以使用 unless,除非輸入的數大於等於 0,否則就使用-轉為正數。
unless 也可以搭配 else。例如:
除非使用者有提供命令列引數,否則 filename 就設定為 "default.properties",要不然 filename 就設定為使用者提供的命令列引數。如果要在一行中撰寫unless判斷,則unless之後同樣必須使用then或分號。例如:
unless 也有個可傳回值的使用方式:
Preface
要某條件成立時才進行某些動作,Ruby 提供了 if運算式,一個例子如下:
- filename = "default.properties"
- if ARGV[0]
- filename = ARGV[0]
- end
- puts filename
if 與 unless
if 可以搭配 else,在 if 條件不成立時,執行 else 中定義的程式碼,所以上例也可以這麼寫:
- if ARGV[0]
- filename = ARGV[0]
- else
- filename = "default.properties"
- end
- puts filename
- # encoding: Big5
- print "輸入分數:"
- score = gets.to_i
- if score >= 90
- puts "得 A"
- elsif score >= 80 and score < 90
- puts "得 B"
- elsif score >= 70 and score < 80
- puts "得 C"
- elsif score >= 60 and score < 70
- puts "得 D"
- else
- puts "不及格"
- end
- filename = "default.properties"
- if ARGV[0] then filename = ARGV[0] end
- puts filename
- filename = "default.properties"
- if ARGV[0]; filename = ARGV[0] ;end
- puts filename
- filename = "default.properties"
- filename = ARGV[0] if ARGV[0]
- print filename
在 Ruby 中有 if,也有 unless。if 條件成立才會執行區塊內容,unless 則相反,條件不成立才會執行區塊,if 是如果條件成立就執行區塊,unless是除非條件成立,否則就執行區塊。
一個例子如下:
- # encoding: Big5
- print "輸入正數:"
- number = gets.to_i
- unless number >= 0
- number = -number
- end
- puts number
unless 也可以搭配 else。例如:
- unless ARGV[0]
- filename = "default.properties"
- else
- filename = ARGV[0]
- end
- puts filename
- # encoding: Big5
- print "輸入正數:"
- number = gets.to_i
- unless number >= 0 then number = -number end
- puts number
- filename = "default.properties"
- filename = ARGV[0] unless !ARGV[0]
- print filename
沒有留言:
張貼留言