選擇結構有單一選擇跟多重選擇,兩者都可使用 if 陳述 (if statement) , if 為關鍵字 (keyword) 之一,若是多重選擇 if 須與 elsif 或 else 連用。單一選擇,也就是單獨使用 if 陳述如下
if 3 > 5 puts "喔,3大於5發生了!" end
以上條件為 3 大於 5 ,如果 3 大於 5 為真,程式就會執行條件後縮排的程式區塊 (block) ,其範圍到 end 為止, end 亦為關鍵字之一,表示程式區塊的結束。如果 3 大於 5 為假,程式自然跳過條件後的程式區塊,去找區塊後的第一個陳述 (statement) 執行。
if 與 else 連用,條件為真,執行 if 後的程式區塊,條件為假,就執行 else 後的程式區塊
if 3 > 5 puts "喔,3大於5發生了!" else puts "還好,3沒有大於5!" end
elsif 表示其他的條件,形成 if-elsif-else 的多重選擇,最後的 else 表示以上皆非
if 3 > 5 puts "喔,3大於5發生了!" elsif 4 > 5 puts "喔,4大於5發生了!" elsif 5 > 5 puts "喔,5大於5發生了!" elsif 6 > 5 puts "6當然大於5哩!" else puts "以上沒有符合的條件 :(" end
我們將以上寫成完整的範例程式,如下
# -*- encoding : utf-8 -*- puts if 3 > 5 puts "喔,3大於5發生了!" elsif 4 > 5 puts "喔,4大於5發生了!" elsif 5 > 5 puts "喔,5大於5發生了!" elsif 6 > 5 puts "6當然大於5哩!" else puts "以上沒有符合的條件 :(" end puts =begin 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:selection.rb 功能:示範 Ruby 程式 作者:張凱慶 時間:西元 2012 年 12 月 =end
執行結果如下
還有個 unless-else 陳述,條件為假執行 unless 的部份,若為真則執行 else 的部份。
if-elsf-else 多重選擇的缺點是需要很多個條件,程式需要做很多個條件判斷,因此另外有個 case 陳述 (case statement) ,條件為一個常數 (constant) 值,然後程式自動尋找符合的 when 。同樣的 case 、 when 也都是關鍵字
case 6 when 3 puts "選擇是3..." when 4 puts "選擇是4..." when 5 puts "選擇是3..." when 6 puts "選擇是6..." else puts "以上沒有符合的條件 :(" end
這裡, case 後面的小括弧必須是常數值,此例中直接使用字面常數 (literal) ,也可以使用有常數值的變數 (variable) 。 when 後空一格,然後也是接常數值,通常就是直接填入符合情況的字面常數。
case-when 最下面有個 else , else 就是預設情況,如果以上皆非就會執行 else 的工作,這跟 if-elsif-else 最後的 else 的用法相同。
我們將此例寫成完整的範例程式,如下
# -*- encoding : utf-8 -*- puts case 6 when 3 puts "選擇是3..." when 4 puts "選擇是4..." when 5 puts "選擇是3..." when 6 puts "選擇是6..." else puts "以上沒有符合的條件 :(" end puts =begin 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:casewhen.rb 功能:示範 Ruby 程式 作者:張凱慶 時間:西元 2012 年 12 月 =end
執行結果如下
複合陳述 (compound statement) 除了選擇結構 (selection structure) 還有重複結構 (repetition structure) ,重複結構也被稱為迴圈 (loop) ,接下來我們就來看看如何使用迴圈吧!
中英文術語對照 | |
---|---|
選擇 | selection |
條件 | condition |
if 陳述 | if statement |
關鍵字 | keyword |
程式區塊 | block |
陳述 | statement |
case 陳述 | case statement |
常數 | constant |
字面常數 | literal |
變數 | variable |
複合陳述 | compound statement |
選擇結構 | selection structure |
重複結構 | repetition structure |
迴圈 | loop |
您可以繼續參考
基礎篇
相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁
參考資料
http://www.rubyist.net/~slagell/ruby/control.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html
http://www.tutorialspoint.com/ruby/ruby_if_else.htm
沒有留言:
張貼留言