Опорная труба "|" является «побитовым» или и должен использоваться только тогда, когда вы знаете, что делаете. Двойная труба "||" является логическим или, и может использоваться в логических утверждениях, таких как "x == 0 || x == 1".
Вот пример того, что поразрядно или делает: если a = 0101 и b = 0011, то a | b = 0111. Если вы имеете дело с логической системой, которая обрабатывает любое ненулевое значение как истинное, то побитовое или будет действовать так же, как логическое или, но его аналог (побитовое и, "&") НЕ будет. Также побитовое или не выполняет оценку короткого замыкания.