设置 | 登录 | 注册

作者共发了1篇帖子。

【教程】跟我從頭學腳本(七)

1楼 蓝晶の骑士 2011-2-10 23:41
轉載自: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   

好了, 大家試試看~今天就講這麼多~ 

内容转换:

回复帖子
内容:
用户名: 您目前是匿名发表。
验证码:
看不清?换一张
©2010-2025 Purasbar Ver3.0 [手机版] [桌面版]
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。