在我们写脚本程序的过程中总会需要根据某个条件 或一组条件的成立情况来控制程序的流程,我们可能要判断某个数值是否大于另外一个 , 又或者是判断某个字符串里是否含有指定的子串等等.
对系统而言所有的条件判断只有 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
