Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
tec:IIF
tec:IIF

Sintaxe

 

IIF( <expressão lógica>,  <expressão 1>, <expressão 2> )

 

Propósito

 

Retorna o resultado de uma expressão baseado em uma condição.

 

Argumentos

 

< expressão lógica>

 

Define uma condição lógica a ser avaliada como verdadeira (.T.) ou falsa (.F.).

 

< expressão 1>

 

Define a expressão a ser processada quando o resultado da expressão lógica for verdadeiro (.T.).

 

< expressão 2>

 

Define a expressão a ser processada quando o resultado da expressão lógica for falso (.F.).

 

Utilização

 

A função IIF() é utilizada para o processamento condicional de uma expressão, de acordo com uma condição especificada através da expressão lógica. Se a expressão lógica for avaliada como verdadeira (.T.), a expressão 1 será processada. Se a expressão lógica for avaliada como falsa (.F.), a expressão 2 será processada.

 

A expressão lógica pode ser qualquer condição lógica válida, como por exemplo: nValor > 0, A = B, etc.

 

As expressões 1 e 2 poderão ser expressões de qualquer tipo de dado (caracter, numérico, data ou lógico), não sendo necessário que ambas resultem no mesmo tipo de dado.

 

Dicas

 

A função IIF() é muito flexível e útil, pois possui inúmeras aplicações vantajosas:

 

  • Fornece um meio de avaliar uma condição dentro de uma expressão. Através dela é possível converter expressões lógicas em outro tipo de dado. Por exemplo:
    • IIF(DELETED(), “Deletado”, “Ativo”)
  • Quando possível, substitui o comando IF ... ENDIF, economizando tempo de processamento.

 

Exemplos

 

// Verifica se a divisão pode ser realizada

LOCAL nCoef := IIF(nCoef > 0, nValor / nCoef, 0)

 

// Verifica o sinal de um número

LOCAL nCoef := IIF(nCoef >= 0, “Positivo”, “Negativo”)

 

A função IIF() pode ser utilizada para substituir a seguinte estrutura de programação:

 

IF cSexo == “F”

          cNome := “Sra. “ + cNome

ELSE

          cNome := “Sr. “ + cNome

ENDIF

 

A estrutura acima é equivalente à:

 

cNome := IIF(cSexo == “F”, “Sra. “, “Sr. “) + cNome