轉載自: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語句有多種表達方式.更高級的例子,留給明天討論吧,今天學得不少了~~
|