轉載自: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
好了, 大家試試看~今天就講這麼多~