Sintaxis
IF <condición>
...
< instrucciones >
...
[ ELSE ]
...
< instrucciones >
...
ENDIF
Propósito
El comando IF ... El ENDIF es un comando de programación estructurada que permite ejecutar condicionalmente un bloque de instrucciones. Se le conoce también como desvío condicional.
Argumentos
<condición>
Es una expresión lógica de control que se evaluará como verdadera (.T.) o falsa (.F.). Si es verdadera, el bloque de instrucciones entre el IF y el ELSE o el ENDIF se ejecutará.
ELSE
Identifica el bloque de instrucciones que se ejecutará si la condición del IF es falsa (.F.). En este caso, se ejecutarán las instrucciones entre el ELSE y el ENDIF. Si el ELSE no existe, el flujo del procesamiento se desvía a la primera instrucción después del ENDIF.
Utilización
Este comando permite, por medio de una condición, seleccionar o no un bloque de instrucciones que se ejecutará. Debe finalizarse siempre con un ENDIF.
Cualquier otro comando de programación estructurada (WHILE, DO CASE y FOR ... NEXT) dentro de un IF ... El ENDIF debe intercalarse correctamente. Es decir, el inicio y el final deben estar entre el IF y el ENDIF. También se permite intercalar varios comandos IF, siempre y cuando cada IF tenga su propio ENDIF.
La cláusula ELSE inicia el bloque de comandos que se ejecutará si la condición del IF se evalúa como falsa (.F.). Si existen múltiples comandos IF en una estructura de comandos, un ELSE siempre se referirá al IF inmediatamente anterior.
Ejemplos
El siguiente ejemplo verifica si existen datos para el cálculo. Si no existen, muestra un mensaje al usuario. Si existen, llama la función CalcGrao().
// Llamada a la función de cálculo
FUNCTION Main(aEstoque)
LOCAL nReserva := 0
IF EMPTY(aEstoque)
MSGALERT(“No existen datos para el cálculo”)
ELSE
nReserva := CalcGrao(1900, aEstoque)
ENDIF
RETURN NIL
Ejemplo de estructura para intercalar varios comandos IF:
IF <condición>
IF <condición>
...
<instrucciones>
...
ELSE
IF <condición>
...
<instrucciones>
...
ENDIF
ENDIF
ELSE
IF <condición>
...
<instrucciones>
...
ENDIF
ENDIF