“switch case” gasta menos processamento que o “If”?
Para os peritos [Resolvido]
5 Respostas
faz um teste ai...
para fazermos o teste para comparar duas coisas, podemos fazer o seguinte, a classe System tem um método que retorna o long referente ao tempo, o mesmo que o usado pela classe Date por exemplo, você pega o tempo antes de uma operação e depois pega o tempo depois e subtrai o depois pelo antes, depois faz da outra forma que quer comparar e veja o resultado...
segue um exemplo bem relacionado ao seu caso, executa ai o teste, com o x = 1 e depois muda ele para 4 também:
int x = 1;
long antes = System.currentTimeMillis();
if (x == 1){
System.out.println("1");
}else if (x == 2){
System.out.println("2");
}else if (x == 3){
System.out.println("3");
}else if (x == 4){
System.out.println("4");
}
System.out.println("demorou "+(System.currentTimeMillis() - antes));
antes = System.currentTimeMillis();
switch(x){
case 1: System.out.println("1");break;
case 2: System.out.println("2");break;
case 3: System.out.println("3");break;
case 4: System.out.println("4");break;
}
System.out.println("demorou "+(System.currentTimeMillis() - antes));
depois não se esqueça de vir aqui e contar os resultados, e de coloca um resolvido no titulo da mensagem ali na sua primeira mensagem :wink:
Mas prefira usar OO do que if/else e switchs.
Além de mais rapido fica mais limpo o código.
Não gasta. Embora ambas as opções sejam péssimas, em termos de performance e manutenção do código (assumindo claro, que você está usando o if na mesma situação que usaria o switch).
Dá uma olhada num exemplo de polimorfismo com enum:
Boa Vini, gostei usando enum
mas um jeito mais fácil para ele,
poderia ser a usar um Operador Ternário .
Mandaram ver hein…parabéns…