有条件地执行语句块
IF <lCondition> [THEN]
<Statements>...
[ELSEIF <lCondition>]
<Statements>...
[ELSE]
<Statements>...
END[IF]
[THEN] | 添加的 THEN 关键字是可选的,因为 Visual FoxPro 允许使用该关键字。 |
<lCondition> | 如果该表达式求值为 TRUE,则执行其后的语句,直到下一个 ELSEIF、ELSE 或 ENDIF。 之后,控制分支到下一个 ENDIF 语句之后的语句。 |
ELSE | 如果前面所有的 IF 和 ELSEIF 条件都评估为 FALSE,则执行 ELSE 之后的语句,直到下一个 ENDIF。 之后,控制分支到下一个 ENDIF 语句之后的语句。 |
IF 的工作方式是分支到第一个 <lCondition> 之后的语句,该语句的评估结果为 TRUE。 如果所有条件均为 FALSE,则分支到 ELSE 语句(如果指定)后面的语句。 执行一直进行到遇到下一个 ELSEIF、ELSE 或 ENDIF,然后控制分支到下一个 ENDIF 语句后面的第一个语句。
控制结构可以嵌套到任意深度。 唯一的要求是每个控制结构都要正确嵌套。
注意:IF...ELSEIF...ENDIF 与 DO CASE...ENDCASE 相同,两种语法在性能上都没有优势。 IF 结构也类似于 IIf() 操作符,可以在表达式中使用。
本例使用 IF...ELSEIF...ENDIF 结构对多个条件进行评估:
LOCAL nNumber := 0
IF nNumber < 50
? "小于 50"
ELSEIF nNumber = 50
? "等于 50"
ELSE
? "大于 50"
ENDIF
BEGIN SEQUENCE, DO CASE, DO WHILE, FOR, IIf()