scorpio 7 Denunciar post Postado Abril 13, 2009 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! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 14, 2009 Alguns detalhes: Esse teste com atribuição só funciona com booleanos. Primeiro efetua-se a atribuição e depois o valor é verificado. || só avalia a segunda expressão se a primeira for falsa e && só avalia a segunda expressão se a primeira for verdadeira. Realmente foram criados para melhorar o desempenho. Por último o código não está completo, para isso para funcionar temos que deduzir que: boolean bool = (a=true)||(b=true)&&(c=true); System.out.println(a +","+ b +","+ c +""); foi chamado dentro de um método estático. Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Abril 16, 2009 Alguns detalhes: Esse teste com atribuição só funciona com booleanos. Primeiro efetua-se a atribuição e depois o valor é verificado. || só avalia a segunda expressão se a primeira for falsa e && só avalia a segunda expressão se a primeira for verdadeira. Realmente foram criados para melhorar o desempenho. Por último o código não está completo, para isso para funcionar temos que deduzir que: boolean bool = (a=true)||(b=true)&&(c=true); System.out.println(a +","+ b +","+ c +""); foi chamado dentro de um método estático. Sim, estava dentro do main, fiquei com reguiça de escrever tudo.... :lol: Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 16, 2009 Muito bom esses exercícios. Eu sei de onde esse professor tirou essa pergunta foi de uma site que tem simulado pra prova de certificação. Se alguém quiser saber eu procuro e posto o link. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Abril 16, 2009 Deve ter sido mesmo. Posta ae o link Kandrade! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 16, 2009 Dizem que é um dos sites com as perguntas mais difíceis sobre a certificação. Pena que está desatualizado e muita coisa que ele foca nem é cobrado mais nos objetivos da atual certificação. Veja as questões de operators. http://www.danchisholm.net/oct1/mybook/index.html Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Abril 16, 2009 Valeu! Pretendo algum dia fazer certificação em java. Não sei ainda.... mas quando for e se for eu vou usar muito esse site! valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Abril 16, 2009 Eu estou só esperando meu voucher chegar pra fazer a prova. Estou preparando um material falando sobre a experiência da prova e o que usei para estudar. Quando terminar posto tudo aqui. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Pretendo algum dia fazer certificação em java. Não sei ainda.... mas quando for e se for eu vou usar muito esse site! valeu! Compartilhar este post Link para o post Compartilhar em outros sites