Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Uma pergunta/informação/curiosidade/como_vocês_queiram_chamar para vocês!
Um colega meu teve uma prova de Java e tinha uma pergunta +- assim:
O que sera impresso na tela?
static boolean a;
static boolean b;
static boolean c;
boolean bool = (a=true)||(b=true)&&(c=true);
System.out.println(a +","+ b +","+ c +"");Qual resultado seria?
A) true,true,true
B) false,false,false
C) Tá louco, boolean não pode ser impresso!
Qual dos tres?
É amigão é isso mesmo que você pensou! NENHUM deles!
O que? tá maluco cara?!
Mas analisando a resposta que o professor dele deu, acontece o seguinte.
Na comparação OU:
true || true
1ª || 2ª
Ele só verifica a primeira condição, por causa de ela ser OU, nem chega a executar o resto da condição(SE O RESULTADO DA PRIMEIRA FOR TRUE), isso deve ser para ganho de desempenho.
Então só vai executar a primeira atribuição, que o resultado é true.
O resultado é: true,false,false.
Parece uma coisa meio óbvia, mas por muitas vezes deixamos passar batido. Na verdade isso É ÓBVIO. Mas deixamos sempre nos levar pelos lados mais complicados, ficamos com um "arreio"(aquela coisa que poe na cara do burro para não ver aos lados) na cara.
Fica aí um [o que você quiser aqui] para você.
:)
Até mais!
Carregando comentários...