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: