If

5 respostas
mpereira

Amigos,

Por que esta classe não compila?


public class IfOperadores2{

public static void main (String args[]){

char letra=a;

boolean amigo=false;

String msg;
if (letra=a & amigo==true)

msg=letra = a e amigo = true;

else if (letra=a & amigo==false)

msg=letra = a e amigo = false;

else if (letra=b & amigo==true)

msg=letra difente de a e amigo = true;

else if (letra=b & amigo==false)

msg=letra difente de a e amigo = false;

System.out.println(msg);

}
}


Na mensagem e erro cita-se que não posso usar o operador & para condições booleanas e caracteres. Que eu deveria usar?

5 Respostas

felipemartinsss
  1. Inicialize a String msg com algo, nem que seja null;
  2. Ao fazer as comparações de letra utilize == ao invés de só um =.
  3. O & acho que funciona, eu prefiro utilizar &&
mpereira

Valeu Felipe!!!
Funcionou direitinho.
Obrigado

D

O & funciona sim, a diferença entre o & e o && é a seguinte.

int x = 0;
if (false && (x + 1) > 0)
{
 //Não entra no laço e o valor da variavel x é 0;
}

if (false & (x + 1) > 0)
{
 //Não entra no laço e o valor da variavel x é 1.
}

Ou seja, com o operador logico && existe um “curto-circuito”, ou seja, se a primeira condição for avaliada como false ele não avalia a segunda pois independente do resultado dela o resultado final será false, já no & não existe isso, ou seja as duas condições sempre serão verificadas.
Descupe-me não dizer o nome desses operadores logicos é que estou esquecido : /

ViniGodoy

Da próxima vez que postar códigos, pode seguir essa dica aqui?
http://www.guj.com.br/posts/list/50115.java

Nos ajuda muito a identificar o seu problema. E seu post fica muito mais bonitinho. :slight_smile:

mpereira

Beleza!!!

Valeu Dark pela explicação sobre o & e o &&.

Vinny, pode deixar vou usar as tags na próxima!

Abraços

Criado 16 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 5
Participantes 4