não entendi o conceito de comparação com boolean
na resposta abaixo que foi true …
boolean b = false;
if (b = true) { System.out.println("b is true");
} else { System.out.println("b is false"); }
qual seria o conceito então para essas comparações :
boolean a = true;
boolean b = true;
if (b = true) { System.out.println("b is true");
} else { System.out.println("b is false"); }
if (a == true) { System.out.println("a is true");
} else { System.out.println("a is false"); }
É uma questão de lógica, vc setou o b como false na linha 1. Na linha 2 vc verifica se b é setado true, o que realmente vc faz. Então é true. O correto seria: b==true
boolean a = true;
boolean b = true;
//declarou variaveis como true
if (b = true) { System.out.println("b is true");
} else { System.out.println("b is false"); } // a resposta sera true pq vc usa um operador de igualdade nao de comparação: vc atribui
//ao invez de comparar
if (a == true) { System.out.println("a is true");
} else { System.out.println("a is false");
//a resposta tb ´´e true, pq quando vc declarou ela vc declarou como true. Na comparação vc comparou se é true, então é veradeiro.
dica: para entender melhor, declare a como false e b como true, depois b como false e a como true. Por fim, os dois como false.
Não li o tópico inteiro, mas no primeiro exemplo já vi
a comparação é feita através do ==. Um simples = é operador de atribuição. Portanto no seu primeiro exemplo a lógica fica
1 - boolean b = false; b é criado e o valor false é atribuido
2 - if (b = true); Primeiro é atribuido TRUE para o B e depois é feito o IF… IF (TRUE) por isso entra no “b is true”. Para ser false, deveria ser if (b == true)…