分支条件

满足特定的条件与否,之后的动作会根据其不同而改变就叫作分支条件

比较运算符

在具体地学习处理分支条件的方法之前,要先记住条件构成中使用的运算符。

下面 6 个运算符称为比较运算符。使用这些运算符,和给予的条件(数字和字符串)相比较,然后返回结果。

== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于

这里一定要注意的是,判断相等的运算符不是 = 而是 ==。像已学习过的那样,所谓 = 符号表示的不是比较而是代入。请注意不要弄混淆了。

真伪值

比较运算的运算结果就称为真伪值。有真(正确)、伪(错误)两种情况。

比较后是正确的话为 true 值,是错误的话就为 false 值。请试试看吧。

p ("早安" == "早安")                # => true
p ("早安" == "你好") # => false
p (3 + 1 == 3 + 5) # => false
p (3 + 1 == 2 + 2) # => true

逻辑运算符

下面 6 个运算符称为逻辑运算符

and
&&
「~,与,~」的意思
or
||
「~,或,~」的意思
not
!
「非~」的意思

英文单词运算符和符号运算符,无论用哪个都是一样的。在预置脚本中运用的主要是符号。使用这些逻辑运算符就能指定更加复杂的条件。

p (100 > 77 and 1 + 1 == 2)         # => true
p (100 > 77 && 1 + 1 == 2) # => true

上述示例中,第一行和第二行表示的都是一个内容「100 大于 77 同时 1 + 1 等于 2」。不用说 100 是比 77 大的整数,1 + 1 答案也为 2,两个运算都成立。所以输出结果就为 true(真,正确)。

那么,看下一个算式吧。

p (1 + 1 == 3 or 2 + 2 == 3)        # => false
p (1 + 1 == 3 || 2 + 2 == 3) # => false

上述示例中,第一行和第二行表示的也都是一个内容「1 + 1 等于 3 或 2 + 2 等于 3」。很显然,1 + 1 不等于 3,2 + 2 也不等于 3,这样两个运算都不成立。比较运算符 or(||)是只要有一个运算成立就为 ture(真,正确),而这里两个运算全都不成立,所以输出结果就为 false(伪,错误)。

另外,not(!)和上面的例子稍微有些不同, not(!)表示的内容为后面的条件不成立。可以理解为颠倒 true 或 false 的运算符。

p (not true)                        # => false
p (! true) # => false

上述示例中的内容是「非 true」的意思,所以输出结果为 false。

此外,不只是 + 和 - 等用于计算的运算符优先级,比较运算符和逻辑运算符也有优先级。目前,只需要记住 == 之类的比较运算符的优先级高于 && 这类的逻辑运算符就足够了。详情请见RGSS参考中的运算符

if ~ elsif ~ else ~ end

if ~ end 语句是分支条件的语法。这个和英文的 if(如果~就)意思相同,表示「如果 if 后面的条件成立的话,就运行下面的处理」的意思。下面示例中的 3~5行就是分支条件。

a = 20              # 为变量 a 赋值代入 20。

if a >= 10 # 如果 a 大于等于 10 的话,
print "big" # 显示 big。
end # 分歧结束。

在条件不满足时也要进行处理的情况下就使用 else,条件不满足但指定另一个条件的情况下就使用 elsif。

a = 7               # 为变量 a 赋值代入 7。

if a >= 10 # 如果 a 为 10 以上的话,
print "big" # 显示 big。
elsif a >= 5 # 除此之外,如果 a 为 5 以上的话,
print "medium" # 显示 medium。
else # 其他,
print "small" # 显示 small。
end # 分歧结束。

unless ~ end

与 if 相反,在条件满足时才进行某些处理的情况下使用 unless 语句。

a = 7               # 为变量 a 赋值 7。

unless a >= 10 # 如果 a 不为 10 以上的话,
print "small" # 显示 small。
end # 分歧结束。

 

虽然上边的例子不是很好,但是用unless的时候也是会有的。

case ~ end

在条件为特定的变量值进行分歧的情况下使用 case 语句会更方便。

a = 0               # 为变量 a 赋值代入 0。

case a # 分歧开始。
when 0 # 当 a 为 0 时,
print "石头" # 显示 石头。
when 1 # 当 a 为 1 时,
print "剪子" # 显示 剪子。
when 2 # 当 a 为 2 时,
print "布" # 显示 布。
end # 分歧结束。

把第一行 a = 后面的 0 改为 1 和 2,然后再来看看分歧的结果吧。当 a 代入 1 时会显示「剪子」,代入 2 时会显示「布」。

条件运算符

使用符号 ? 和 : 也是运算符形式的分支条件语句。

a = 3

p (a >= 10 ? "big" : "small") # => "small"

这个示例的意思是,变量 a 的值在 10 以上的话就显示 "big", 9 以下的话就显示 "small"。条件运算符的语法是「条件 ? 真时的值 : 伪时的值」。上述的条件是 a >= 10,真时的值为 "big",伪时的值为 "small",会根据条件是否满足来决定使用 ? 或 : 的值。

当然使用 if 语句也能完成同样的事情。

a = 3

if a >= 10
p "big"
else
p "small"
end

使用 if 语句的语法会像上面写的那样,但是使用条件运算符语句会更加简洁。该语句在当前的脚本中也使用得很多,所以最好记住。

修饰符

如同下面所示,想要执行的命令后面可以写if和unless等。

print "big" if a >= 10      # a 要是大于等于 10 的话 就显示big 

背很多语法的确是件不容易的事情,做相同的事情如果使用简单的语法就是不错的选择。