1. ホーム
  2. c++

[解決済み] IF文に複数のORまたはAND条件を設定する

2022-03-02 21:25:21

質問

IF文について基本的な疑問があります。 例えば、文字列SUNと文字配列(サイズ3)をマッチさせたいとします。

if(arr[0]!='S' || arr[1]!='U' || arr[2]!='N')

cout << "no";

else

cout<< "yes";

If文ではすべての条件がチェックされるのですか、それとも最初の不一致で真が返されるのですか?

すべての条件をチェックする場合、チェックの順番は右から左になるのでしょうか?

どのように解決するのですか?

C++標準によると

1 && 演算子は、左から右へグループ化します。 . オペランドは両方とも に変換される(第4項)。その結果は,両方の オペランドが真でそれ以外は偽である。とは異なり、&&は以下を保証する。 左から右へ評価する。 の場合、2番目のオペランドは評価されません。 最初のオペランドが偽の場合。

そして

1 演算子は左から右へグループ化する . オペランドは両方とも の文脈でboolに変換される(第4項)。のどちらかであれば,真を返す。 のオペランドが真であれば、そのオペランドは真であり、そうでなければ偽である。とは異なり、||は 左から右へ評価されます。 2番目のオペランドは は、最初のオペランドが真と評価された場合に評価されます。