Lembre-se da precedência!
int c = 0;
System.out.println( false && (++c == 1) || true );
System.out.println(c);
O que será impresso na tela!
Lembre-se da precedência!
int c = 0;
System.out.println( false && (++c == 1) || true );
System.out.println(c);
O que será impresso na tela!
false
0
true
0
primeiro true]
depois 0
eu acho q eh true e depois 1
pq nessa linha
System.out.println( false && (++c == 1) || true );
tem um OU TRUE, qq coisa OU TRUE eh TRUE.
e a var c eh incrementada na segunda linha, entao passa a ter valor 1.
pqp, fala sério, eu so um burro, é true mesmo, mas q me*** … eu vi aquele “false && …” … ai ja imaginei q ele nem ia avaliar mais coisa nenhuma, ja q quando o operador && ve um false a esquerda, nem perde seu tempo com o lado da direita… agora fiquei p da vida :bah:, internamente ele vai ver ( false && true ) || true… blé…
Aí matheus, não fica nervoso não. 
Pelo menos ficou comprovado que você é honesto e não executou o código antes de responder 
Valeusss
hehehhe
Calma bete!!!
E ai matheus ainda vai adiar a prova denovo?
ou agora vou ou racha??
hahaha, não vo adiar nada, dependendo de como for minha semana, eu marco pra proxima duma vez :lol:
Bom, ja q o JPC naum se pronunciou eu compilei aqui e o resultado foi:
true
0
mas pq zero!!! Ele incrementa o c, na hora de fazer o teste… Ou sera q pelo fato dele achar o false && ele ja nem executa o q esta no lado direito?!
int c = 0;System.out.println( false && (++c == 1) || true );
System.out.println(c);
Opa darkseid
Pelo que eu entedi, false && true é false
e false || true é TRUE
Ao menos pelo meu raciocinio aprendido em lógica matematica láááá no primeiro semestre da facult me deu este resultado.
Até conferi em código e foi este o restultadopublic static void main(String[] args) {
int c = 0;
System.out.println(false && true); // Para este resultado false && (++c == 1)
System.out.println(false || true);
System.out.println( false && (++c == 1) || true );
System.out.println(c);
}
}
e a saida foi:
false
true
true
0
Ficou claro?
Opa, desculpa a demora,
Respondendo a questão:
1º Não se esqueçam que estamos trabalhando com operadores short circuit
Portando em
De acordo com a precedência o && vai ser executado 1º, e logo de cara já ocorre um short circuit, porque quando o primeiro valor é false ele não precisa avaliar o segundo para saber o resultado da expressão, logo não ocorre o incremento ++c.
Após resolver o && teriamos a seguinte expressão
FALSE || TRUE
que por sua vez é TRUE.
Espero ter esclarecido