【基础第17课】RMVA从零学起-脚本-条件分歧
和之前事件一样=-=脚本的条件分歧也有不同的条件...
== (等于) >= (以上) <= (以下) > (大于) < (小于)!= (不等于)
于是...
标准的数学符号就不解释了...
注意一下「=」和「==」是不同的...
「=」是用来赋值的而「==」是判断用的= =
条件分歧的第一种:
if...elsif...else...end
例子:if a == 1
p "a=1"
elsif a == 2
p "a=2"
else
p "idk what the hell is a"
end
其实elsif和else只是在有其他条件的情况下才用的,如果没有就可以不用
elsif和else后面并不是必须跟条件(这样的话就是「除了上面的条件以外」的意思了)
if还有一个用法:
p "yes" if a == 10 #当a等于10的时候,显示yes,这是修飾子,下面的unless也一样
unless
这个就是在不满足条件时才执行的了
例子:
unless a == 10
p "100"
end
然后最后一个:
case ... when ... else ... end
case后面写变量名
when后面写条件
else就是「除了上面的条件以外」的意思
例子:
case a
when 100
p "a=100"
when 10
p "a=10"
else
p "so what is a?"
end
最后...
再补充一下两个符号:
and #与
&& #与
or #或
|| #或
例子:p a if a == 100 or a == 10
然后脚本暂告一段落QwQ~
木有作业= =
往下看补充
相关链接:
[*]http://urpgs.com/thread-984-1-1.html - 下一课:RMVA从零学起-战斗前的准备
我跑来补充了=w=
17.脚本-基础-条件分歧(补充)
# 我就是想吐槽原来的章节里说“游戏里不要出现p”什么的现在我第5次看到可爱的p了……
unless ~ end
unless也有修饰子(后缀表达式的另一种说法)用法。
a = 0
p "Hello" unless a < 0
case ~ when ~ else ~ end
这里else也可省略。when后面的表达式是与case后的表达式做===运算。(对,你没看错,是===不是==
但是,对于Numeric实例来说,===的功能和==一样。(还是扯回去了{:nm07:}
不过,对于Range实例就不是这样了。
【例子】 # 抄F1真好,但F1和我的代码风格不同= =
age = 12
case age
when 0..2
p "baby"
when 3..6
p "little child"
when 7..12
p "child"
when 13..18
p "youth"
else
p "adult"
end
并且when后面可以跟多个表达式,用半角逗号隔开。
【例子】
a = 42
case a
when 40, 41, 42, 43 # case也可以只有一个when就结束
msgbox "39<a<44" # 我就不用p,啦啦啦啦~
else
msgbox "a>43 or a<40"
end
关于那两个符号
||和or、&&和and的优先级是不同的。 # 抄F1也是很爽的=w=
高::
[]
**
-(单目运算符)+(单目运算符)!~
*/%
+-
<< >>
&
|^
> >=< <=
<=> ===== !==~!~
&&
||
.....
?:(条件演算子)
=(+=, -= ... )
低not
and or
意思就是用&&或||请带括号= = p "yes" if a == 10 #当a等于10的时候,显示yes,这货好像叫做「后缀表达式」?
严格来说是比较表达式。a==b,a>=b,a<=b,a!=b ,是比较两者的大小。而单纯的a =b是赋值表达式。后缀表达式那些就涉及到栈操作和“遍历二叉树”顺序之类的思想。 是不是应该提醒注意下||的使用,在(a||b)?c:d的时候,如果a为真的话,b的语句如果含有执行内容会被跳过的。
比如a=1,b=1,(a||b++)?……,a为真值,b++是不会被执行的,导致与预期不同。
(这是c的逻辑,不知道ruby通用不,反正我以前错过,就拿出来分享下)
页:
[1]