Main Content

Short-Circuit OR, ||

ショートサーキットを使用した論理 OR

説明

expr1 || expr2 は、論理ショートサーキットの動作を使用した論理 OR 演算を表します。つまり、expr1 が logical 1 (true) の場合、expr2 は評価されません。それぞれの式は、スカラー logical の結果に評価されなければなりません。

すべて折りたたむ

2 つのベクトルを作成します。

X = [1 0 0 1 1];
Y = [0 0 0 0 0];

XY にショートサーキット OR 演算子を使用すると、エラーが返されます。ショートサーキット演算子は、スカラーの論理条件でのみ演算を行います。

関数 any および all を使用して、それぞれのベクトルを単一の論理条件に縮小します。

any(X) || all(Y)
ans = logical
   1

この式は 1 OR 0 と等価であるため、最初の条件 any(X) のみを計算した後、logical 1 (true) に評価されます。

入力引数

すべて折りたたむ

論理式。logical スカラーに評価される任意の有効な MATLAB® 式として指定します。

例: isscalar(x) || isvector(x)

例: (x > 1) || (x < -1)

データ型: logical

詳細

すべて折りたたむ

論理ショートサーキット

"論理ショートサーキット" を使用した場合、論理式の結果が完全に判定されると、論理式の評価が早期に完了することがあります。論理 AND および論理 OR の特性により、すべての条件を評価する前に論理式の結果が完全に判定されることがあります。

  • 論理 and 演算子は、式の中の条件が 1 つでも false であれば logical 0 (false) を返します。

  • 論理 or 演算子は、式の中の条件が 1 つでも true であれば logical 1 (true) を返します。

これらの値が 1 つ検出されることで論理式の評価が完了する場合、式に "ショートサーキットがある" といいます。この手法を適切に使用すると、コード内で複雑な比較を効率的に実行できます。

たとえば、式 A && B において、条件 A が false であると MATLAB は条件 B をまったく評価しません。A が false と判定されると、B の値によって演算結果が変化することはありません。

ヒント

  • if または while ループ式のコンテキスト内で "のみ" 要素単位の & および | 演算子を使用する場合、式の評価にショートサーキットが使用されます。

    ただし、ショートサーキットの評価を有効にするには、必ず && 演算子と || 演算子を使用してください。ショートサーキットに & および | 演算子を使用すると、式の評価結果が論理スカラーにならない場合、予期しない結果が生じる可能性があります。

拡張機能

バージョン履歴

R2006a より前に導入