if (i>=8 || i<0)
if(!((i>=0) && (i<8)))
-
上記の文は同じですか?そうでない場合は、
i
のどの値が異なるかによって異なります。
ありがとうございます。
EDIT 1:0-7の範囲外のiの値をすべてキャッチすることですが、どちらも同じタスクを実行しますか?
if (i>=8 || i<0)
if(!((i>=0) && (i<8)))
i
のどの値が異なるかによって異なります。
ありがとうございます。
EDIT 1:0-7の範囲外のiの値をすべてキャッチすることですが、どちらも同じタスクを実行しますか?
これらは同じです。デ・モルガンの法則によって、異論の否定は否定の結びつきである。
So(Aではない)または(Bでない)はnot(AおよびB)と同じです。あなたがAが私であると言うならば、<とBはi> = 0です。答えがあります。
この場合は同じですが、最初のステートメントは最初の部分だけを評価するかもしれないので、将来的にスワップをしていることを知っていることを確認してください。
2番目のステートメントも、最初の部分だけを評価することがあります。 –
@ GauravSehgalいいえ、論理ANDは両方を実行します。 – Coder
@コーダー最初の部分が偽であっても? –
はい結果は同じになります。コンパイラに依存して、他のものより速く実行されるかもしれません。 – atturri
さて、「1」と言うのは、「2」より速いかもしれませんか? – Coder
良い最適化コンパイラは、両方に対して全く同じコードを生成します。 – user3386109