o operador ternário é mais rápido ou só muda a maneira de escrever ?
int a;
if(condicao) { a = 1; } else { a = 1; }
ou
a = condicao ? 1 : 2;
o operador ternário é mais rápido ou só muda a maneira de escrever ?
int a;
if(condicao) { a = 1; } else { a = 1; }
ou
a = condicao ? 1 : 2;
num fim das contas vai dar tudo no mesmo , num vai ficar mais rapido nem de um jeito de outro.
Só muda a forma de escrever!
hmmm, sera mesmo?
vejamos:
class tst
{
int t;
int foo()
{
int x = t == 0 ? 10 : 20;
return x;
}
int foo2()
{
int x;
if(t == 0)
x = 10;
else
x = 20;
return x;
}
}
>javac tst.java
compilou
>javap -c tst
Method int foo()
0 aload_0
1 getfield #2 <Field int t>
4 ifne 12
7 bipush 10
9 goto 14
12 bipush 20
14 istore_1
15 iload_1
16 ireturn
Method int foo2()
0 aload_0
1 getfield #2 <Field int t>
4 ifne 13
7 bipush 10
9 istore_1
10 goto 16
13 bipush 20
15 istore_1
16 iload_1
17 ireturn
O codigo gerado é diferente, porem ambos vao executar o mesmo numero de instrucoes.
Compilando com -O -g:none o resultado não muda.
Ou seja, usar operador ternario ou if é pura questão de gosto ate onde tudo indica…