USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Select Case ou If ?
H e n n y e r e
Pontos: 2843
SALVADOR
BA - BRASIL
Postada em 28/08/2005 19:11 hs         
Percebemos que em muitos casos p/ ñ ficar repetindo "IF" toda hora, adaptamos a instrução "Select Case". Melhora o desempenho do aplicativo se sempre q puder trocassemos If por Select Case?
 
Qual a diferença de If para IIF?
 
Agradeço.
     
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 28/08/2005 23:00 hs         
Nunca medi para ver se o "Select Case/Case/Case Else" é mais rápido que If/ElseIf/Else, mais:
- O uso Select deixa o código mais legivel, sem sombra de dúvida;
- No entanto, não da para trocar 100% dos Ifs por Selects quando se tem múltiplos condições num mesmo If. Por exemplo, If (a = 1 AND b = 0 ) OR c = 5.

Com relação ao Iif:
- é um operador para expressões ternários (similar a "expressão ? True : False"  em C);
- Equivalente ao uso de If/Else;
- Muito lento.
Exemplo:
A= 0
B = Iif( A = 0, 1, 2)
Se a expressão A=0 for verdadeira será atribuído B = 1,
senão será atribuído B = 2.
     
Sandro
não registrado
Postada em 28/08/2005 23:44 hs   
Olá,
 
O amigo José está quase certo sobre o Select Case em expressões complexas. ao contrário do que ele disse, o Select Case pode tratar expressões complexas como a que ele descreveu e outras ainda mais complicadas ainda. Mas veja, Select Case não é uma instrução de verificação nativa do processador, por isso ela tem que ser "convertida" internamente pelo compilador (ou interpretador, dependendo do modo de compilação selecionado) em um conjunto mais complexo de IF...Then...Else, por esse motivo, ele sempre será mais lento que o IF tradicional. O IIf ainda é pior, pois ele trabalha, como o amigo José disse como um avaliador ternaário que tem mais passos para ser executado internamente.
Agora, veja que nem sempre você precisa se preocupar com o desempenho de um programa quando usa o Select Case ou o IIF, pois em geral as expressões usadas são simples e por isso tratados de foma razoavelmente simples. Preocupe-se apenas se está desenvolvendo aplicações multicamadas ou para a internet, ou ainda, programas que tenham que responder muito rápido a infomações externas (controle de processos, por exemplo). Nesses casos, você deve utilizar sempre que possível (sem dificultar muito a legibilidade do código) instruções If...Then...Else, e para melhorar ainda mais o desempenho, teste sempre os valores falsos: If X <> 10 Then...., pois o processador trabalha mais rapidamente testando falores negativos que positivos (estranho não acha, mas é assim mesmo)
 
Um abraço,
Sandro.
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página