2016-04-28 2 views
-1

if条件がif(abc==xyz AND (xyz==jkl OR abc==jkl))です。私は、我々はスタックの助けを借りて作業の優先順位に基づいてプレフィックス表記を使用することができます私に非ブラケット条件を与えるコードでこの表現、基本的な発現のためにIf条件を簡略化するためのプログラム可能な方法は何ですか(書き換え条件)

if(xyz==jkl OR abc==jkl AND abc==xyz)` 

のようなつまり、何かを書き換えることができますどのように

私たちはそれを解決することができます。しかし、私は括弧付きのものと同じ出力を与えるものを見つけるために条件を書き直したいだけです。

+1

あなたは括弧を削除することによって得るために何を望みます演算子の優先順位テーブルを参照することよりも、実験を探している場合は? –

+0

括弧は実際にコードを後で読むのを助けることができます。 – MaD

+0

'OR(abc == jkl)'これらのカッコは意味がありません。それらの不在が結果を変える例(そしてphpコードはPHPとしてタグ付けされているので)は、あなたの質問をより明確にするでしょう - 最も重要なのは、あなたが何をしているのか、なぜならそれは明確ではありません。 – AD7six

答えて

2

あなたはよりprecedence高いOR持っていることを実際使用して、DNFに条件を変換することにより起動することができます。

if (abc==xyz AND xyz==jkl OR abc==xyz AND abc==jkl) 

が第二の部分を見てみると、これは

if (abc==xyz AND xyz==jkl OR abc==xyz AND xyz==jkl) 

に書き換えることができます。これで、両方の部分が同じであることがわかります。つまり、簡単にすることができます。

if (abc==xyz AND xyz==jkl) 

楽しい事実:式を簡略化することができなかった場合、あなたはまた、優先順位の規則を活用し、||ANDを組み合わせることができます:私はそれをお勧めします

if (abc==xyz AND xyz==jkl || abc==jkl) 

ないこと。

+0

'あなたも組み合わせることができます||なぜ他のOR演算子を使うのですか、' || 'とORはお互いのエイリアスです。 – AD7six

+2

これらは同じ論理演算を行いますが、優先順位が異なります。 [優先順位表](http://php.net/manual/en/language.operators.precedence.php) – Mifeet

+0

を参照してください。私は括弧を削除するためにそれを書き直していますが、その部分も注意しなければならないという条件の中で式を再順序付けしています。 –

関連する問題