Duvida sobre boolean

3 respostas
P

Olá pessoal ,

uma duvida porque quando se compara uma variável boolean com if usando == ou =

sempre retorna true ?

Quem puder me ajudar agradeceria …

abs …

class Test2 {
	     public static void main(String [] args) {
	       boolean x = true;
	       boolean y = false;
	       short z = 42;
	 
	       
	       if((x == true) && (y = true))  {
	    	   z++;
	       }

	       if((y == true) || (++z == 44)) {
	    	   z++;
	       }
	       
	       
	      System.out.println("z = " + z);
	    }
}

3 Respostas

nandobgi

Bom dia

Aqui vc está atribuindo true para y
Para comparação == para atribuição =

if((x == true) && (y = true)) {

Abraços

ateubh
if((x == true) && (y = true))  {

é o que o nandobgi disse, quando você faz y = true, você está atribuindo true para a variável y e depois verificando se o conteúdo de u é igual a true… o if fica dependendo apenas do x… se ele for false não vai entrar, caso contrário vai.

T

Dica: se puder, nunca compare nada com true ou false.
É que você pode fazer esse tipo de salada com o sinal de “==” e “=” - o javac (e se não me engano o próprio Eclipse) não reclama da atribuição escondida. Use, de preferência:

if(x && y)  { // boa prática

em vez de:

if (x == true && y == true) { // má prática

Outros exemplos:

if ( ! x) {

em vez de

if (x == false) {

Se por acaso seu chefe ou professor odeia que você use “x” em vez de “x == true”, então use algo seguro, que é pôr a constante ANTES do valor a ser comparado:

if (true == x) {

Se você puser a constante antes, então não há como você se distrair.

if (true = x) { // isto o compilador não vai aceitar. Que bom
Criado 24 de abril de 2006
Ultima resposta 24 de abr. de 2006
Respostas 3
Participantes 4