Membro desde: 03/12/2004 12:56:35
Mensagens: 484
Offline
Ae galera achei a questão abaixo super interessante e resolvi postar:
Quais das alternativas abaixo são verdadeiras com relação ao trecho de código acima:
A) O código a seguir não compila
B) O código a seguir compila sem problemas e exibe: "true"
C) O código a seguir compilar sem problemas e exibe: "false"
D) O código a seguir lança uma RuntimeException
Bom a maioria de vocês vai se surpreender com a resposta...
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Fowler)
Sun Certified Programmer for the Java Platform 1.4
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
Vamos pôr os parênteses onde é mais difícil entender.
b2!= b1 = !b2
equivale a
(b2 != b1) = !b2
mas o problema é que (b2 != b1) não é um "L-Value" (ou seja, uma variável), então isso não compila.
Se o seu problema fosse
b2!= b1 == !b2
seria um pouco diferente, pois equivale a:
(b2 != b1) == !b2
e isso é fácil de calcular.
EDIT - é pena que não tem uma opção de "deixar as letras de cabeça para baixo" para a gente poder dar tempo para quem quiser responder à questão acima, sem olhar esta resposta.
This message was edited 1 time. Last update was at 05/07/2005 18:10:29