目前共有1篇帖子。 内容转换:不转换▼
 
点击 回复
409 0
【教程】跟我从头学脚本(七)
高级弟子 五级
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   

好了, 大家试试看~今天就讲这么多~ 

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:409 回复数:0
评论数: ?
作者:蓝晶の骑士
最后回复:蓝晶の骑士
最后回复时间:2011-2-10 23:41
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。