não entendi o conceito de comparação com boolean
na resposta abaixo que foi true …
booleanb=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 :
booleana=true;booleanb=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
booleana=true;booleanb=true;//declarouvariaveiscomotrueif(b=true){System.out.println("b is true");}else{System.out.println("b is false");}//arespostaseratruepqvcusaumoperadordeigualdadenaodecomparação:vcatribui//aoinvezdecompararif(a==true){System.out.println("a is true");}else{System.out.println("a is false");//arespostatb´´etrue,pqquandovcdeclarouelavcdeclaroucomotrue.Nacomparaçãovccomparouseé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.
J
jcoelho
= Atribuição
== Comparação
No primeiro if, você atribui depois testa !
No segundo só esta comparando.
J
Jair_Rillo_Junior
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)…
Entendeu?
G
g4j
Foi só uma falta de atenção:
booleanb=false; if(b=true){System.out.println("b is true"); }else{System.out.println("b is false"); }
está atribuindo true a b, note que não está usando “==” e sim “=” (atribuição)