轉載自:www.66rpg.com
原作者:Dubealex
Near Fantastica(特別講)
主講人(翻譯):frantice
電子書製作:小湖
第六講: 條件語句(上)
今天我們來學習條件語句,即常說的」If語句」
首先看兩句句子:
if my_variable=0
if my_variable==0
看出它們的區別了嗎?
後者是正確的,前者是錯誤的,這是Ruby的基本語法哦~~
好了,說完無關緊要的,我們來測試一下幾個例子:
例1:
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 "Yay, we are equal !"
else
print "Arg, it's not fair !"
end
end
end
腳本放入後事件中調用(應該很熟悉了吧~~):
If_Statement_1.new
If_Statement_1.new
If_Statement_1.new
If_Statement_1.new
出現什麼情況?
第三個窗口會是"Yay, we are equal !",因為我們每次調用這個類時都給它的值增加了1, 剛好第三次的時候這個類的值等於了局部變量,也就是@@a_class_variable==a_local_variable RMXP是按以下的程序運行的:
第一次:
@@a_class_variable=10+1 --> 得11
a_local_variable=13
IF語句判斷了兩個大小,從而得出他們不相等,於是它執行了else的情況.
第二次:
@@a_class_variable=11+1 --> 得12
還是不相等,仍是else
第三次:
相等了,於是顯示 "Yay, we are equal !"
第四次以及以後:
都不相等,同1,2.
例2:
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 then print "Yay" else print "Arg" end
end
end
看到那行特別長的了嗎? 它是沒有錯誤的,因為我們可以把If語句寫在一行,當然了,不夠美觀不夠方便.它用於一些小場合.以下是另外兩個例子:
例3:
class If_Statement_1
@@a_class_variable=10
def initialize
@@a_class_variable+=1
a_local_variable=13
print @@a_class_variable
if @@a_class_variable==a_local_variable : print "Yay" end
end
end
比較下例2,我們發現我們可以用」 : 」來替換原句中的」then」.繼續往下看~
例4:
class If_Statement_1
@@a_class_variable=10
def initialize
@@a_class_variable+=1
a_local_variable=13
print @@a_class_variable
print "Yay" if @@a_class_variable==a_local_variable
end
end
這個例子裏我們把」end」都省略掉了^0^.看起來更清爽了不? 因為我們重新改造了句子的結構,把結果print "Yay" 加了個」if」顯示在」 @@a_class_variable 等於 a_local_variable. 「的條件前.所以,我們現在知道了If語句有多種表達方式.更高級的例子,留給明天討論吧,今天學得不少了~~