タグ付けされた質問 「operator-precedence」

14
必要でない場合でも、論理ステートメントで括弧を使用する必要がありますか?
ブール条件がa AND b OR c AND dありAND、操作優先順位がの言語よりも高い言語を使用しているとしますOR。次のコード行を書くことができます。 If (a AND b) OR (c AND d) Then ... しかし実際には、それは次と同等です: If a AND b OR c AND d Then ... 余分な括弧を含めることに賛成または反対する議論はありますか?実用的な経験は、読みやすさのためにそれらを含める価値があることを示唆していますか?それとも、開発者が実際に座って自分の言語の基本に自信を持つ必要があるという兆候ですか?

2
なぜビット演算子は比較よりも優先度が低いのですか?
理由を説明してもらえますか、なぜ最も一般的な言語の束(下記の注を参照)で比較演算子(==、!=、<、>、<=、> =)がビットごとの演算子(&、|、^ 、〜)? この優先順位が自然な使用法に出会ったことはないと思います。それは常に次のようなものです: if( (x & MASK) == CORRECT ) ... // Chosen bits are in correct setting, rest unimportant if( (x ^ x_prev) == SET ) // only, and exactly SET bit changed if( (x & REQUIRED) < REQUIRED ) // Not all conditions satisfied 私が使用する場合: flags = …

3
シャンティングヤードアルゴリズムにおける関数の優先順位
ウィキペディアで説明されているように、シャンティングヤードアルゴリズムを使用しています。 演算子を処理するときのアルゴリズムの説明は次のとおりです。 トークンが演算子o1の場合: 演算子スタックの一番上に演算子トークンo2があり、 o1 is left-associative and its precedence is less than or equal to that of o2, or o1 is right associative, and has precedence less than that of o2, 次に、オペレータースタックから出力キューにo2をポップします。 o1をオペレータースタックにプッシュします。 ただし、次の例を示します。 入力: sin max 2 3 / 3 * 3.1415 アルゴリズムが/トークンをヒットした場合、何が起こるかについての説明は次のとおりです。 Token | Action | Output …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.