在我们写脚本程序的过程中总会需要根据某个条件 或一组条件的成立情况来控制程序的流程,我们可能要判断某个数值是否大于另外一个 , 又或者是判断某个字符串里是否含有指定的子串等等.
对系统而言所有的条件判断只有 true (非零,真) 或者 false (零,假)两种可能结果.通常我们利用 ==, <>, >=等比较 运算符 来对各种对象进行比较从而建立条件.
在码栈可用下面两种条件语句:
- If...Then...Else
(字面意思:如果(某个条件成立)…那么(执行某些操作)…否则(执行另外一些不同的操作) - Select...Case
(这是开关语句,根据某个表达式的多种不同的值来选择执行不同的语句) - Switch...Case
(同上)
这三种语句的功能差不多,具体要用哪一种决定于给定的条件. 下面是一个使用If 语句的例子,根据变量的值弹出一个 对话框(Message Box) .
$var = -20
If $var > 0 Then
MsgBox(0, "例子", "$var 为正数!")
ElseIf $var < 0 Then
MsgBox(0, "例子", "$var 为负数!")
Else
MsgBox(0, "例子", "$var 为零!")
EndIf
在上面的例子中, 表达式 $var > 0 的值为 false 因为变量小于零. 因此第一个条件不成立, 开始判断第二个条件. 表达式 $var < 0 的值为 true. 这样 if 语句将会去执行第二个 MsgBox 行,并显示 "$var 为零!".
选择(Select) 选择语句的使用也是类似的, 但通常用于判断较多条件,这样比 If/Else 的语句往往要更清晰.
例如:
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "示例", "$var 大于 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "示例", "$var 大于 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "示例", "$var 大于 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "示例", "$var 大于 30")
Case $var > 40
MsgBox(0, "示例", "$var 大于 40")
EndSelect
Switch 选择语句和 Select 非常相像,但是它主要用于测试一个变量的不同范围.请看例子:
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "例子", "$var 为 1 ~ 10的范围之间")
Case 11 To 20
MsgBox(0, "例子", "$var 为 11 ~ 20的范围之间")
Case 21 To 30
MsgBox(0, "例子", "$var 为 21 ~ 30的范围之间")
Case 31 To 40
MsgBox(0, "例子", "$var 为 31 ~ 40的范围之间")
Case Else
MsgBox(0, "例子", "$var 不在 0 ~ 40的范围里面")
EndSwitch