他の回答でカバーされているものを超えて、それの価値があることを指摘&&
し、||
異なる優先度を持っている&
し、|
。
優先順位表から抽出します(優先順位が最も高い)。
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
これはどういう意味ですか?
絶対に何もありません。ただし、唯一の&
、|
または唯一の&&
、およびのみに固執する限り||
。
ただし、(|
優先順位が低いとは&&
対照的に||
)よりも優先順位が高いため、それらを自由に混合すると予期しない動作が発生する可能性があります。
だから、a && b | c && d
同じであるa && (b | c) && d
、
とは対照的に、a && b || c && d
されるであろう(a && b) || (c && d)
。
それらが同じではないことを証明するために、真理値表からの抜粋を考えてみましょう:
a | b | c | d | (b|c) | (a&&b) | (c&&d) | a && (b|c) && d | (a&&b) || (c&&d)
F | T | T | T | T | F | T | F | T
^ ^
|- not the same -|
ORをANDよりも優先したい場合は、 は、|
andと&&
一緒に使用できますが、これはお勧めできません。
しかし、あなたは本当に異なるシンボル、すなわち使用したときに優先度を明確にするために、括弧内にそれらを置くべきである(a && b) || c
(優先順位を明確にするために括弧を)、 a && b && c
(ないブラケットは必要ありません)。