Uso de operador lógico no comando if

4 respostas
mapeixoto

Caros Srs.,

Tenho a seguinte dúvida, quando uso a sintaxe:

if (str!="ok") System.out.println("OKOKOK");

onde str é uma String, passo o valor diferente de “ok” e a saída imprime.

Mas, se uso:

if (str=="ok") System.out.println("OKOKOK");

passo o valor “ok” e a saída não imprime.

Alguém sabe me dizer se existe alguma restrição no uso desse operador?

Obrigado.

4 Respostas

tatianaesc

Olá,

A comparação entre Strings deve ser feita através do método equals.

[]´s
Tatiana

A

Cara, é o seguinte… o operador “==” compara objetos, ou seja, verifica se é o mesmo objeto. No caso, os dois objetos que você está comparando têm o mesmo conteúdo, mas não são o mesmo objeto, sacou? Eles estão em endereços de memória diferentes… para comparar os conteúdos de Strings, você tem que usar os métodos equals ou equalsIgnoreCase, da classe String.

Abraço,

Amrnaod

mapeixoto

Beleza, Tatiana!

if (str.equals(“ok”)) System.out.println(“OKOKOK”);

Muito obrigado.

mapeixoto

Entendi, Armando, tranquilo.
Muito obrigado, cara.

Criado 4 de outubro de 2006
Ultima resposta 4 de out. de 2006
Respostas 4
Participantes 3