Main Content

Short-Circuit AND, &&

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

説明

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

すべて折りたたむ

2 番目の条件が 1 番目の条件に依存する論理ステートメントを指定します。次のステートメントでは、除数 b がゼロの場合、右辺の関係を評価しても意味がありません。

b = 1;
a = 20;
x = (b ~= 0) && (a/b > 18.5)
x = logical
   1

結果は logical 1 (true) です。ただし、(b ~= 0)false と評価される場合、MATLAB® では式全体が false であると仮定され、その式の評価が早期に終了します。

b = 0 を指定して、同じ式を評価します。

b = 0;
x = (b ~= 0) && (a/b > 18.5)
x = logical
   0

結果は logical 0 (false) です。最初のステートメントが logical 0 (false) と評価されるため、式はショートサーキットされます。

'File' および 'Format' という名前のフィールドをもつ構造体を作成します。

S = struct('File',{'myGraph'},'Format',[])
S = struct with fields:
      File: 'myGraph'
    Format: []

複数の条件が true にならなければならない場合、if ステートメントにショートサーキットの式を使用すると便利です。1 番目の式が true である場合にのみ 2 番目の式を評価することが意味をなすというように、相互の条件を構築できます。

S'Format' という名前の空のフィールドが含まれる場合にのみ実行する if ステートメントを指定します。

if isfield(S,'Format') && isempty(S.Format)
  S.Format = '.png';
end 
S
S = struct with fields:
      File: 'myGraph'
    Format: '.png'

最初の条件は、'Format' が構造体 S のフィールドの名前かどうかをテストします。2 番目のステートメントは、Format フィールドが空かどうかをテストします。2 番目の条件の真偽は 1 番目の条件に依存しています。1 番目の条件が true にならないと 2 番目の条件が true になることはありません。S には 'Format' という名前の空のフィールドがあるため、本体のステートメントが実行され、S.Format に値 '.png' が代入されます。

入力引数

すべて折りたたむ

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

例: isvector(x) && isreal(x)

例: (x > 1) && (x < 10)

データ型: 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 ループ式のコンテキスト内で "のみ" 要素単位の & および | 演算子を使用する場合、式の評価にショートサーキットが使用されます。

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

拡張機能

バージョン履歴

R2006a より前に導入