Operador ternÁrio

3 respostas
T

Galera to começando… talvez até seja uma dúvida básic, mas eu não consigo saber qual é o resultado dessa operação:

class Question49 {

public static void main (Strings[] args) {

boolean b = false;

String s = (b=!b)?(b=!b)?Hello:hello: (b!=b)?world:World;

System.out.println(s);

}

}

O QUE RAIOS ELE IMPRIME?!
Qual a ordem que o compilador interpreta o operador?
Coloquei nesse tópico pois é uma questão da certificação. Penso que seja inútil mas vale ponto, então…!!

3 Respostas

ViniGodoy

Oi! Ao postar códigos, use a tag code. Se você ainda não saber fazer isso, dá uma olhada aqui:
http://www.guj.com.br/posts/list/50115.java

Só mesmo em certificação para ter um código tão mal escrito como esse. Dá uma olhada agora, com os parênteses.

class Question49 { public static void main (Strings[] args) { boolean b = false; String s = (b=!b)?((b=!b)?"Hello":"hello"): ((b!=b) ? "world":"World"); System.out.println(s); } }

Você também poderia testar executando o código.

T

Vlw… eu testei… sabia a resposta mas não entendia o porque!!!

Erro de conceito:
!= é diferente de =! … um é atribuição o outro é comparação…

Valew… vou pensar mais vezes antes de postar!!!

Deluxe

Não cai questões assim na prova SCJP 5
pode ficar tranquilo

Criado 30 de maio de 2008
Ultima resposta 1 de jun. de 2008
Respostas 3
Participantes 3