Já vimos como se fazia. Eis uma cascata de ifs com apenas cinco níveis:
' cascata_ifs.vbs 12:06 01-05-2008
' Cascata de ifs / if ladder
' variavel para entrada
Entrada=""
' Pedir a entrada
Entrada= inputbox("Introduza um inteiro de 0 a 100: ")
' Processar a entrada
' numa cascata de ifs
if Entrada < 0 then
msgbox "Tem de ser pelo menos 0."
else
if Entrada < 34 then
msgbox Entrada & " está entre 0 e 33."
else
if Entrada < 67 then
msgbox Entrada & " está entre 34 e 66."
else
if Entrada < 67 then
msgbox Entrada & " está entre 34 e 66."
else
if Entrada < 101 then
msgbox Entrada & _
" está entre 67 e 100."
else
msgbox "Não pode ser" & _
" maior que 100."
end if
end if
end if
end if
end if
A imbricação de ifs (nested ifs, if-else ladder) é uma forma de escrever que é muitas vezes necessária mas se presta a gerar confusão quanto a saber que "else" e que "end if" pertence a que "if". A regra geral é: pertencem ao último. (A outra é: não se meta em assados).
Por vezes pode reduzir-se uma cascata a uma estrutura mais legível, como uma sequência:
' crivo_if.vbs 12:06 01-05-2008
' Crivo de ifs
' variavel para entrada
Entrada=""
' Pedir a entrada
Entrada= inputbox("Introduza um inteiro de 0 a 100: ")
' Processar a entrada
' num crivo de ifs
if Entrada < 0 then _
msgbox "Tem de ser pelo menos 0."
if (Entrada > -1 and Entrada < 34) then _
msgbox Entrada & " está entre 0 e 33."
if (Entrada > 33 and Entrada < 67) then _
msgbox Entrada & " está entre 34 e 66."
if (Entrada > 66 and Entrada < 101) then _
msgbox Entrada & " está entre 67 e 100."
if Entrada > 100 then _
msgbox "Não pode ser maior que 100."
Note o uso dos caracteres de continuação(_), e o uso de comparações unilaterais ("maior que" e "menor que" em vez de "igual ou maior", etc...), que reduzem o tempo de execução.
O índice de massa corporal (Quetelet) é calculado da seguinte forma:
I = m / h2
onde m é a massa em kg e h a altura em metros. As classes habituais para homens de 20 anos ou mais são, sem correcção para a idade nem raça:
Escreva um programa que indique em que classe fica uma dada pessoa.
Depois, introduza uma correcção para o sexo.
Lembre-se que as coisas não são assim tão simples, e que deve melhorar isto com o tempo. ([1],[2]).
Início: 25/4/2008
Última modificação: 18:43 06-05-2008