在编译时根据条件决定是否编译某段源代码。
语法
#IF nExpression1 | lExpression1
Commands
[#ELIF nExpression2 | #ELIF lExpression2
Commands
...
#ELIF nExpressionN | #ELIF lExpressionN
Commands]
[#ELSE
Commands]
#ENDIF
参数
#IF nExpression1 | lExpression1
Commands
nExpression1 给出了要计算的数值表达式。
lExpression1 给出要计算的逻辑表达式。
附注
请不要为 nExpression1 和 lExpression1 指定系统内存变量。因为系统内存变量只有在运行时才具有值。
#ELIF nExpression2 | #ELIF lExpression2
Commands
...
#ELIF nExpressionN | #ELIFlExpressionN
Commands
如果表达式 nExpression1 的值为 0,或者表达式 lExpression1 的值为“假”(.F.),则计算 #ELIF
命令。如果存在 nExpression2 或 lExpression2,则计算 #ELIF 命令中表达式的值。如果表达式 nExpression2 的值不为 0,或者表达式 lExpression2 的值为“真”,则编译在 #ELIF 命令后的程序代码,然后退出 #IF ... #ENDIF 结构,接着编译 #ENDIF 命令后面的程序。
如果表达式 nExpression2 的值为 0,或者表达式 lExpression2 的值为“假”(.F.),则不编译 #ELIF 命令后的程序,而继续处理下一个 #ELIF
命令。
#ELSE Commands
如果没有 #ELIF 命令,或者全部 #ELIF 命令的表达式计算结果都为 0 或都为“假”(.F.),
#ELSE 的存在与否将决定 #IF ... #ENDIF 结构中是否有其他需要编译的程序。
#ENDIF
表示 #IF 语句的结束。
说明
#IF ... #ENDIF 能够提高源代码的可读性,缩小编译后程序的大小,以及在某些情况下提高程序的运行性能。
编译 #IF ... #ENDIF 结构时,首先计算该结构中的一系列逻辑表达式或数值表达式的值,这些表达式的计算结果将决定编译哪些 Visual FoxPro 程序(如果存在)。