Os comandos IF-THEN e IF-THEN-ELSE permitem selecionar quais os comandos que serão executados dependendo de uma condição.
O comando IF-THEN tem o seguinte formato:
If Condição Then
Comando 1
Comando N
End If
Comando N+1
O comportamento do comando IF-THEN é o seguinte: primeiramente a condição é avaliada, podendo resultar em dois valores: TRUE (verdadeiro) ou FALSE (falso). Se a condição for verdadeira, os comandos 1 até N serão executados e, em seguida, o comando N+1. Se a condição for falsa, nenhum dos comandos de 1 a N será executado e o programa irá diretamente para o comando N+1. Por outro lado, o comando IF-THEN-ELSE tem o seguinte formato:
If Condição Then
Comando 1
Comando N
Else
Comando N+1
Comando N+M
End If
Comando N+M+1
O comportamento do comando IF-THEN-ELSE é o seguinte: A condição é avaliada; se ela for verdadeira, os comandos de 1 até N serão executados; se a condição for falsa, os comandos de N+1 a N+M serão executados. Em ambos os casos, o comando posterior a ser executado será o comando N+M+1.
Vejamos como exemplo o cálculo de juros progressivos em um investimento financeiro. Se a conta contém um saldo inferior a R$10.000,00, então o banco paga juros mensais de 2%. Para saldo superiores a R$10.000,00 o banco paga 3%. A função TaxaProgressiva1 calcula o saldo da conta no final de um mês.
Function TaxaProgressiva1 (Saldo As Double) As Double
'saldo ao fim de um mes
'com taxa progressiva
'Declaracoes
Dim Taxa As Double
'Descobre o valor da taxa
If Saldo < 10000 Then
Taxa = 0.02
Else
Taxa = 0.03
End If
'Retorno da funcao
TaxaProgressiva1 = Saldo * (1+ Taxa)
End Function
Outra forma de se computar exatamente a mesma função:
Function TaxaProgressiva2 (Saldo As Double) As Double
'saldo ao fim de um mes
'com taxa progressiva
'Declaracoes
Dim Taxa As Double
Dim Acrescimo As Double
'Descobre o valor da taxa
If Saldo < 10000 Then
Taxa = 0.02
Acrescimo = Saldo * Taxa
Else
Taxa = 0.03
Acrescimo = Saldo * Taxa
End If
'Retorno da funcao
TaxaProgressiva2 = Saldo + Acrescimo
End Function
Conforme vimos no exemplo acima, as expressões condicionais são formadas por comparadores (o símbolo < no exemplo acima).
Uma expressão condicional simples tem o formato Expressão Aritmética comparador Expressão Aritmética. Os comparadores lógicos podem ser:
Desta forma, podemos formar expressões condicionais como (X + 2 <= Y*Z).
As expressões condicionais simples podem ser combinadas para formarem expressões condicionais compostas. Temos os seguintes combinadores lógicos:
Por exemplos, uma expressão condicional que testa se uma variável X está entre os valores MIN e MAX (inclusive) é
Se quisermos verificar se Y NÃO está entre MIN e MAX, podemos fazê-lo de duas formas:
ou
.
Retomando o exemplo dos juros progressivos, se a conta contiver um saldo inferior a R$10.000,00 então o banco pagará juros mensais de 2%. Para cada R$5.000,00 adicionais acima de R$10.000,00 o banco pagará 0,5% a mais, até atingir a taxa limite de 4%. A função TaxaProgressiva3 fica:
Function TaxaProgressiva3 (Saldo As Double) As Double
'saldo ao fim de um mes
'com taxa progressiva
'Declaracoes
Dim Taxa As Double
'Descobre o valor da taxa
If Saldo < 10000 Then
Taxa = 0.02
ElseIf Saldo < 15000 Then
Taxa = 0.025
ElseIf Saldo < 20000 Then
Taxa = 0.03
ElseIf Saldo < 25000 Then
Taxa = 0.035
Else
Taxa = 0.04
End If
'Retorno da funcao
TaxaProgressiva3 = Saldo * (1+ Taxa)
End Function
Exercícios
Esbanjador | até 25% (inclusive) |
Gastador | entre 25% e 53% (inclusive) |
Comedido | entre 53% e 75% (inclusive) |
Essencial | entre 75% e 95% (inclusive) |
Esbanjador | até 20% |
Gastador | entre 25% e 45% |
Comedido | entre 53% e 75% |
Essencial | entre 80% e 95% |
Crie uma planilha de 4 colunas. As três primeiras contêm os coeficientes da equação do segundo grau. A quarta contém o valor da maior raiz.