前言
在程式設計中,運算子 (operator) 視為程式的基本指令,可用來執行基本的功能。運算子不能再拆分出更小的單位。VBScript 中有三種運算子:
- 代數運算子 (arithmetic operator)
- 關係連算子 (relational operator)
- 邏輯運算子 (logic operator)
代數運算子 (Arithmetic Operator)
代數運算子 (arithmetic operator) 用來進行基本的四則運算。包括以下運算子:
- 相加
+
- 相減
-
- 相乘
*
- 相除
/
(得小數) - 相除
\
(得整數) - 取餘數
Mod
- 取指數
^
以下是實例:
' Arithmetic operators
Assert 3 + 4 = 7, "It should be " & (3 + 4)
Assert 3 - 4 = -1, "It should be " & (3 - 4)
Assert 3 * 4 = 12, "It should be " & (3 * 4)
Assert 3 / 4 = 0.75, "It should be " & (3 / 4)
Assert 3 \ 4 = 0, "It should be " & (3 \ 4)
Assert 10 Mod 3 = 1, "It should be " & (10 Mod 3)
Assert 3 ^ 4 = 81, "It should be " & (3 ^ 4)
' Home-made assert for VBScript
Sub Assert( boolExpr, strOnFail )
If Not boolExpr Then
Err.Raise vbObjectError + 99999, , strOnFail
End If
End Sub
讀者可以注意到我們在範例程式中自製斷言 (assertion)。這是因為 VBScript 沒有內建的斷言語句,使用者要自行製作。
傳統的程式設計教材會用印出終端機的方式來展示程式,但筆者較不推薦這種方式。印出終端機後仍要人工比對程式是否正確;相對來說,使用斷言可以直接從程式碼中讀出我們的意圖,而且可由電腦程式自動檢查。
關係運算子 (Relational Operator)
關係運算子 (relational operator) 用來檢查兩個值之間的大小關係。包括以下運算子:
- 相等
=
- 不相等
<>
- 大於
>
- 大於或等於
>=
- 小於
<
- 小於或等於
<=
我們用一個簡例來說明如何使用這些運算子:
' Relational operators.
Assert 3 + 4 > 5, "It should be larger"
Assert 3 + 4 >= 5, "It should be larger"
Assert 3 + 4 < 10, "It should be smaller"
Assert 3 + 4 <= 10, "It should be smaller"
Assert 3 + 4 = 7, "It should be equal"
Assert 3 + 4 <> 5, "It should not be equal"
' Home-made assert for VBScript
Sub Assert( boolExpr, strOnFail )
If Not boolExpr Then
Err.Raise vbObjectError + 99999, , strOnFail
End If
End Sub
邏輯運算子 (logic operator)
邏輯運算子 (logic operator) 用來進行布林運算 (boolean algebra)。在程式設計中,布林運算用來組合多個條件句,形成複合條件。包括以下運算子:
- 且
And
- 或
Or
- 非
Not
注意 VBScript 的邏輯運算子是用文字而非符號。這是因為早期的 Algol 家族語言 (Algol, Pascal, Basic) 都是使用文字做為保留字。
以下是實例:
' Logic operator - And.
Assert ((True And True) = True), "It should be true"
Assert ((True And False) = False), "It should be false"
Assert ((False And True) = False), "It should be false"
Assert ((False And False) = False), "It should be false"
' Logic operator - Or
Assert ((True Or True) = True), "It should be true"
Assert ((True Or False) = True), "It should be true"
Assert ((False Or True) = True), "It should be true"
Assert ((False Or False) = False), "It should be false"
' Logic operator - Not
Assert ((Not True) = False), "It should be false"
Assert ((Not False) = True), "It should be true"
' Home-made assert for VBScript
Sub Assert( boolExpr, strOnFail )
If Not boolExpr Then
Err.Raise vbObjectError + 99999, , strOnFail
End If
End Sub
在本範例中,我們用中括號來調整運算子優先順序。