轉載自:www.66rpg.com
原作者:Dubealex
Near Fantastica(特別講)
主講人(翻譯):frantice 電子書製作:小湖
第七講: 條件語句(中)
緊接著昨天的if, 我們可以把elsif連在一起使用~先看例子:
class If_Statement_1 @@a_class_variable=10 def initialize @@a_class_variable+=1 a_local_variable=13 if @@a_class_variable==a_local_variable print "We Are Equal !" elsif @@a_class_variable==12 print "I Equal 12 !" elsif @@a_class_variable != a_local_variable print "We aren't equal !" end end end
看清楚哦,是elsif 不是 elseif ~~
使用elsif語句會時程序在if語句中選擇,而且不會同時選擇兩個.否則,當@@a_class_variable 的值等於12,我們就會看到兩條信息了就是"I Equal 12 !"和 "We Aren't Equals". 但是事實上條件句只顯示第一條信息並跳過了其他的語句返回true值。想做成這樣的話,只用簡單的用新的elsif作為IF語句,程序就會檢查所有語句,然後執行true值時候的情形: class If_Statement_1 @@a_class_variable=10 def initialize @@a_class_variable+=1 a_local_variable=13 if @@a_class_variable==a_local_variable print "We Are Equal !" end if @@a_class_variable==12 print "I Equal 12 !" end if @@a_class_variable != a_local_variable print "We aren't equal !" end end end 運行看看,我們就能看到當@@a_class_variable的值等於12時能出現兩條信息, "I Equal 12 !" 和 "We Aren't Equal". 不過是不是覺得很累贅呢? 因為大部分情況下, 用這麼多個 else if , 還不如用下面的Case 語句.
Case 語句是用來檢查給出的變量的內容,並列出一組滿足每個給定的值時應執行的動作.在 Scene (場景)和Menus (菜單)中會大量出現.我們繼續使用上面的例子class_variable:來說明.要記住的是,我們這回要改變事件頁腳本那裡的寫法了^0^ 將If_Statement_1.new 改為 Case_Statement_1.new 例1: class Case_Statement_1 @@a_class_variable=0 def initialize @@a_class_variable+=1 case @@a_class_variable when 1 print "I am 1" when 2 print "I am 2" when 3 print "I am 3" else print "What Am I ?" end end end 運行下看看, 是不是覺得比那麼多個else if 要來得清楚明了呢? 這就是case 語句的優點, 當然了,我們照樣可以用」:」 來代替」then」,所以我們可以把語句縮合成這樣: 例2: class Case_Statement_1 @@a_class_variable=0 def initialize @@a_class_variable+=1 case @@a_class_variable when 1: print "I am 1" when 2: print "I am 2" when 3: print "I am 3" else print "What Am I ?" end end end
好了, 大家試試看~今天就講這麼多~
|