1
resposta

Java - Boolean

Boa Noite

public class Teste { public static void main(String[] args) { boolean a = false; if (a = true) { System.out.print("oi"); } } }

Nesse código, se coloco apenas if (a = true) ele devolve a mensagem "oi", já quando coloco if (a == true) ele não devolve nada. Sabem me dizer essa diferença?

Obs: Peguei esse exercicio no TestKiller

1 resposta

Thiago, em Java o sinal de comparação é == (dois sinais de igual). Quando usamos apenas = (um sinal de igual) estamos atribuindo um valor à uma variável (atributo).

Quando você faz

boolean a = false;

Você está atribuindo o valor false à variável a.

Daí, quando você faz

if (a = true)

Você está setando o valor de a para true e não fazendo a comparação. Por isso ele passa no teste, pois se você fizer

if (true) {
    // algum código aqui
}

O trecho // algum código aqui será sempre executado. O mesmo está acontecendo no seu if(a=true).

Espero ter ajudado.

Abraço.