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以后的语句。请用EndIf结束If...Then...Else语句段,而与有无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”。这是因为包括Boolean型的条件判断是通过“0”或“非0”非来判断。

    如果“i”值不是“0”,将判断为条件成立并进行显示。


参阅
Else、Select...Case、Do…Loop

If/Then/Else使用示例
[1行的If...Then...Else]

下例是为确定特定输出的ON/OFF而检查输入的简单示例。这样的任务用于经常变动的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"