[Índice Acima]

Controlo de fluxo

Imbricação de ifs

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).

Sequência de ifs

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.

Exercícios

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]).

 

Índice | Comente


Início: 25/4/2008

Última modificação: 18:43 06-05-2008