Para os peritos [Resolvido]

5 respostas
Algebra

“switch case” gasta menos processamento que o “If”?

5 Respostas

maior_abandonado

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:

Marky.Vasconcelos

Mas prefira usar OO do que if/else e switchs.

Além de mais rapido fica mais limpo o código.

ViniGodoy

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:

http://www.guj.com.br/posts/list/55885.java

edmarr

Boa Vini, gostei usando enum
mas um jeito mais fácil para ele,
poderia ser a usar um Operador Ternário .

Algebra

Mandaram ver hein…parabéns…

Criado 9 de fevereiro de 2010
Ultima resposta 10 de fev. de 2010
Respostas 5
Participantes 5