Histórico da Página
...
Portuguese | ||||||
---|---|---|---|---|---|---|
Documento: Estruturas de DecisãoDesvio Condicional O comando IF ... ELSE ... ENDIF (SE ... SENÃO ... FIM DO SE) permite condicionar a execução de uma sequência de instruções. Esta estrutura de programação decide entre dois caminhos alternativos, dependendo se uma condição especificada for verdadeira ou falsa. Após a execução de um dos caminhos, os dois caminhos unem-se novamente. Por exemplo: // Função de cálculo do Imposto de Renda Pessoa Física (IRPF) FUNCTION CalcIR(nSalario) LOCAL nDesconto := 0 IF nSalario > 5000 nDesconto := nSalario * 0.275 ELSE nDesconto := nSalario * 0.15 ENDIF MSGALERT("O desconto sobre o salário é de R$ " + Str(nDesconto, 9, 2)) RETURN nDesconto O comando ELSE é opcional. Caso ele não seja utilizado, será executada apenas a instrução referente à condição lógica verdadeira. Vejamos o exemplo: // Função de cálculo da comissão do vendedor FUNCTION CalcCom(nTotVen) LOCAL nComissao := 0 IF nTotVen > 50000 nComissao := nTotVen * 0.03 ENDIF MSGALERT("A comissão do vendedor é de R$ " + Str(nComissao, 9, 2)) RETURN nComissao Portanto, se a condição lógica especificada no comando IF for avaliada como verdadeira (.T.), será executado o bloco de instruções entre o IF e o ELSE, ou entre o IF e o ENDIF, caso o ELSE não seja especificado. Caso a condição seja avaliada como falsa (.F.), o bloco de instruções entre o ELSE e o ENDIF será executado. Caso o ELSE não tenha sido especificado, então nenhum bloco de instruções será executado. Desvio Múltiplo Dependendo de determinadas condições, em algumas rotinas há a necessidade de se escolher um único caminho entre diversas alternativas para a continuação do fluxo de execução. Os comandos DO CASE ... ENDCASE e IF ... ELSEIF ... ENDIF permitem a tomada de decisão entre três ou mais alternativas de processamento. Portanto, quando a escolha do caminho a ser seguido pelo fluxo de controle envolve mais de duas alternativas, é necessário o uso da estrutura de Desvio Múltiplo ou "Caso". A escolha é feita dependendo da condição de cada alternativa. Apenas uma das alternativas, a que primeiro atender a sua condição, será executada. Vejamos o exemplo: // Função de cálculo do Imposto de Renda Pessoa Física (IRPF) FUNCTION CalcIR(nSalario) LOCAL nDesconto := 0 DO CASE CASE nSalario > 5800 nDesconto := nSalario * 0.275 CASE nSalario >= 3400 nDesconto := nSalario * 0.15 CASE nSalario >= 2300 nDesconto := nSalario * 0.075 OTHERWISE cCondicao := "ISENTO" ENDCASE IF EMPTY(nDesconto) MSGALERT(cCondicao) ELSE MSGALERT("O desconto sobre o salário é de R$ " + Str(nDesconto, 9, 2)) ENDIF RETURN nDesconto A cláusula OTHERWISE (de outra forma) é opcional e significa que serão executadas as instruções que vierem entre ela e o ENDCASE (fim do CASE) caso nenhuma das condições for satisfeita. O comando IF ... ELSEIF ... ENDIF é uma alternativa para a estrutura de controle de desvio múltiplo, pois o seu funcionamento é equivalente ao do comando DO CASE ... CASE ... ENDCASE. O exemplo anterior pode ser reconstruído utilizando-se o comando IF ... ELSEIF ... ENDIF da seguinte forma: // Função de cálculo do Imposto de Renda Pessoa Física (IRPF) FUNCTION CalcIR(nSalario) LOCAL nDesconto := 0 IF nSalario > 5800 nDesconto := nSalario * 0.275 ELSEIF nSalario >= 3400 nDesconto := nSalario * 0.15 ELSEIF nSalario >= 2300 nDesconto := nSalario * 0.075 ELSE cCondicao := "ISENTO" ENDIF IF EMPTY(nDesconto) MSGALERT(cCondicao) ELSE MSGALERT("O desconto sobre o salário é de R$ " + Str(nDesconto, 9, 2)) ENDIF RETURN nDesconto A cláusula ELSE (senão) é opcional e significa que serão executadas as instruções que vierem entre ela e o ENDIF (fim do desvio múltiplo) caso nenhuma condição seja satisfeita.
|
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas