If…Then…Else…EndIf

依照指定的條件分支來執行命令。

格式
(1) If條件運算式 Then
陳述式T1
.
.
[ElseIf 條件運算式 Then]
陳述式T1
.
.
[Else]
陳述式F1
.
.
EndIf

(2) If 條件運算式 Then 陳述式T1 [;陳述式T2...] [Else 陳述式F1 [;陳述式F2...]]

參數

條件運算式
是返回真假值(True/False值)的有效條件運算式。若為真(True),則傳回「0」以外的數值;若為假(False)時,則傳回「0」。(請參閱以下條件運算式範例。)
陳述式T1
條件運算式的值為真(True)時,也就是符合條件時,則予以執行。(可在If...Then...Else形式的區塊中,記述數個陳述式。)
陳述式F1
條件運算式的值為假(False)時,也就是不符合條件時,則予以執行。(可在If...Then...Else形式的區塊中,記述數個陳述式。)

說明
(1) If...Then...Else用於符合條件時執行陳述式T1以後的部分。不符合條件時,則執行陳述式F1以後的部分。可省略If...Then...Else命令的Else部分。省略Else部分而不符合條件時,則執行EndIf以後的陳述式。無論有無Else,都請用EndIf關閉If...Then...Else陳述式的區塊。

(2) If...Then...Else也可使用區塊以外的形式。這是將所有If...Then...Else的陳述式都記述在相同行的方法。若要按此方法使用If...Then...Else,則不需要EndIf。若符合此行記述的條件運算式(條件運算式的值為真(True)時),則執行Then和Else之間的陳述式。若不符合條件運算式(條件運算式的值為假(False)時),則執行Else之後的陳述式。If...Then...Else的Else部分並非必須的。若不符合條件運算式(條件運算式的值為假(False)時)且無Else關鍵字,控制則移至程式中的下一個陳述式。

注意


  • 條件運算式範例

    • a = b:a等於b
    • a < b:a小於b
    • a >= b:a大於或等於b
    • a <> b:a不等於b
    • a > b:a大於b
    • a <= b:a小於或等於b

    還可使用邏輯運算子And、Or、Xor等。

  • 在條件運算式中使用True時

    常數True的值為-1,但由於是Boolean型,因此用於和其它型態變數的比較條件時需加以注意。

    Function main
      Integer i
      i = 3
      If i = True Then
        Print "i=TRUE"
      EndIf
    Fend
    

    若執行上述程式,則顯示「i=TRUE」。這是因為用「0」或「非0」執行包括Boolean型在內的條件判定。

    「i」的值不是「0」時,則判定為條件成立並進行顯示。


參照
Else、Select...Case、Do...Loop

If/Then/Else範例
[1行的If...Then...Else]

如下所述為檢查輸入以確定特定輸出的啟用/停用的簡易範例。這一類的工作用於始終運行的I/O工作等。

Function main
    Do
       If Sw(0) = 1 Then On 1 Else Off 1
    Loop
Fend

[區塊形式的If...Then...Else]

如下所述是檢查多個輸入值並輸出該輸入狀態的簡易範例。

If Sw(0) = 1 Then Print "Input0 ON" Else Print "Input0 OFF"
'
If Sw(1) = 1 Then
    If Sw(2) = 1 Then
       Print "Input1 On and Input2 ON"
    Else
       Print "Input1 On and Input2 OFF"
    EndIf
Else
    If Sw(2) = 1 Then
       Print "Input1 Off and Input2 ON"
    Else
       Print "Input1 Off and Input2 OFF"
    EndIf
EndIf

[其它格式範例]

If x = 10 And y = 3 Then GoTo 50
If test <= 10 Then Print "Test Failed"
If Sw(0) = 1 Or Sw(1) = 1 Then Print "Everything OK"