Desviar o fluxo do programa dependendo de uma ou mais condições.
IF <exp.L1>
<comandos>
[ELSEIF <exp.L2>
<comandos>]
[ELSE
<comandos>]
ENDIF
<exp.L> |
representa uma expressão de controle. Se seu valor é verdadeiro (.T.), todos os comandos seguintes são executados até um ELSEIF, ELSE ou ENDIF. |
ELSEIF |
determina que uma nova condição será testada, caso todas as expressões anteriores sejam falsas (.F.). |
ELSE |
determina os comandos que serão executados quando as condições do IF e de todos os ELSEIF sejam falsas (.F.). |
ENDIF |
determina o fim de um comando IF. |
Quando se pretende testar a veracidade de uma expressão e executar um conjunto de comandos a partir do resultado obtido nela.
O comando estruturado IF ... ENDIF funciona executando blocos de comandos a partir da primeira expressão que retorne verdade (.T.) .
ELSEIF e ELSE servem para simplificar agrupamentos de IF fazendo com que o fluxo de execução do programa seja alterado de acordo com o resultado das expressões testadas.
O uso deste comando eqüivale ao comando DO CASE ... ENDCASE.
O exemplo a seguir mostra-nos a utilização do comando IF com a cláusula ELSE que será executada caso o resultado retorne falso (.F.).
INPUT "1 + 2 e igual a ? " TO varnum
IF 1+2 = varnum
? "Ok você acertou "
?? " 1 + 2 e igual a "
? 3 BLINK
ELSE
? "Você errou 1 + 2 não e ",varnum
ENDIF
O exemplo a seguir mostra-nos a utilização do comando IF com as cláusulas ELSEIF e ELSE.
INPUT "Qual sua idade ? " TO idade
IF idade < 0 .or. idade > 100
? " Impossível "
ELSEIF idade >= 0 .and. idade <= 16
? "Você e um Adolescente"
ELSEIF idade >=17 .and. idade <= 35
? "Você e um Jovem"
ELSE
? "Você e um Adulto"
ENDIF
O exemplo a seguir mostra o exemplo anterior utilizando o comando DO CASE ... ENDCASE.
INPUT "Qual sua Idade ? " TO idade
DO CASE
CASE idade < 0 .or. idade > 100
? " Impossível "
CASE idade >= 0 .and. idade <= 16
? "Você e um Adolescente"
CASE idade >=17 .and. idade <= 35
? "Você e um Jovem"
OTHERWISE
? "Você e um Adulto"
ENDCASE
DO CASE, DO WHILE, EXIT, FOR ... NEXT, FUNCTION, SET EXACT, CONF(), IIF(), VAL() e STR().