目前共有1篇帖子。 内容转换:不转换▼
 
点击 回复
430 0
【教程】跟我从头学脚本(六)
高级弟子 五级
1楼 发表于:2011-2-10 23:41
转载自: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语句有多种表达方式.更高级的例子,留给明天讨论吧,今天学得不少了~~

回复帖子

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

本帖信息

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