Dúvida sobre | e ||

Bom dia…

Curiosidade… Em que situação ajudaria usar o | ao invés de ||???

Sei que:

a | b (retorna true se a ou b for true. Ambas expressões a e b são sempre avaliadas)

a || b (retorna true se a ou b for true. Se a for true, b não é avaliada.)

Alguém teria um exemplo de código que seria útil usar o |? Por que eu preciso avaliar o B se A já é true e o resultado vai ser true?

Obrigado,

|| é um operador logico.

| não é um operador logico e sim um operador bit-a-bit, ele analise cada bit e faz um OR exclusivo neles.

| só é usado em operações de baixo nivel, que lidam diretamente com bits, ou seja, você quase nunca vai usar…

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html

|| e o && vc já conhece, é o “ou” e o “e”:

existe outros tipos de verificação que são conhecidas também como “portas lógicas”, ao todo são 7:

& and
| or
! not
^ exor

!& not + and
!| not + or
!^ not +exor

geralmente programadores de alto nivel não usa, alguns nem conhece essas portas. E como foi dito aí, é usado mais em baixo nível, bit-a-bit

http://www.inf.ufsc.br/ine5365/portlog.html

vc encontra algo sobre isso.

lembrando que, portas lógicas é usado muito em hardware e que toda e qualquer operação no seu computador vai cair numa dessas portas