Lógica

5 respostas
edymrex

Bem o ou exclusivo em lógica matématica assume o seguinte valor?

Vai ser verdadeiro se e somente se um dos operandos tiver um valor verdadeiro mais em programação não ocorre dessa forma
por exemplo:

if(true | true)
{
			 
	 System.out.print("verdadeiro");
}
else
{
	 System.out.println("False");
}

Pela lógica matématica isso tem que dar falso uma vez que os dois operandos tem o mesmo valor, gostaria de saber porque é dessa
forma em programação…?

5 Respostas

acopiara

Amigo o operador de OU exclusivo em java é o “^” :stuck_out_tongue:

diego2005

O | é um operador lógico como o ||. A diferença é que o | sempre testa as duas condições, e o || não. Por exemplo:

int i = 0; if((i == 0) | (i++ == 0)) { System.out.println(i); // i = 1 }

int i = 0; if((i == 0) || (i++ == 0)) { System.out.println(i); // i = 0 }

Entendeu???

T+

edymrex

Sim cara || em java faz uma operação em curto circuito se a primeira for true ele já entra na condição
sem testar a outra se for ou exclusivo | ele testa a duas mesmo se for true a primeira mas no príncipio da lógica isso é errado
como mostrei na tabela verdade acima ou exclusivo só retorna true se e somente se um dos operando forem true se os dois
forem true ele retorna falso é não é isso que acontece no java eu queria é uma explicação para isso por creio que isso está
errado até que alguém me prove o contrário. Verifiquei isso na net é achei interessante postar:

diego2005

Acho que você não viu o que o acopiara falou acima, o operador ou exclusivo do Java não é o |, e sim o ^, então seu exemplo ficaria assim:

if(true ^ true) { System.out.print("verdadeiro"); } else { System.out.println("False"); }

T+

edymrex

Nossa que vacílio.!!!
foi mal ai cara realmente não prestei atenção está tudo esclarecido…!

Criado 2 de setembro de 2007
Ultima resposta 2 de set. de 2007
Respostas 5
Participantes 3