IF (従来のバージョン)
Synopsis
IF expression command1 ELSE command2 I expression command1 E command2
引数
expression | オプション — ブーリアン値として評価される 1 つの式 (またはコンマ区切りの式のリスト)。 |
command1 | expression が True と評価される場合、または expression が省略される場合は、1 つ以上の Caché コマンドが実行されます。 |
ELSE command2 | expression が False と評価される場合、1 つ以上の Caché コマンドが実行されます。ELSE キーワードはオプションです。 |
説明
このページでは、IF コマンドの従来のバージョンについて説明します。このバージョンは Caché 4.0 時点で従来のバージョンとして見なされるもので、新規のプログラミングでは使用すべきではありません。ここでは、従来のアプリケーションとの互換性について説明します。
従来の IF コマンドは行型です。実行するコマンドは、同じプログラム行で IF の後に記述する必要があります。{ } 括弧は使用されず、行フォーマット化の使用は制限されます。新規の IF コマンドはブロック型です。実行するブロックは、IF コマンドの後に続く中括弧で囲まれたコマンドで構成されます。行フォーマット (空白や改行) は制限されていません。新規のバージョンの IF は、$TEST 特殊変数を使用しません。
IF と ELSE の従来のフォームと新規のフォームは構文的には異なり、結合することができません。したがって、あるタイプの IF は別のタイプの ELSE と組み合わせることはできません。
IF コマンドには、以下の 2 つの基本形式があります。
引数なし
引数付き
引数なしの IF
expression 引数なしの IF は、$TEST の現在の値が True (ゼロ以外) である場合に、IF と同じ行でそれに続くコマンドを実行します。$TEST が False (0) の場合、Caché はその行の残りのコマンドを無視して、次の行で実行を続けます (通常 ELSE コマンド) 。したがって、ELSE キーワードは IF '$TEST ($TEST が FALSE の場合) と同じになります。
引数付きの IF
expression 引数付きの IF は、expression が True (ゼロ以外) と評価される場合に、IF と同じ行でそれに続くコマンドを実行します(また、Caché は $TEST を True に設定します)。expression が False (0) である場合、Caché は $TEST に False (0) を設定し、残りのコマンドを無視し、次の行から実行を続けます。
次の行は通常 ELSE キーワードで始まり、同じ行で 1 つまたは複数のコマンドが続きます。IF コマンドで ELSE キーワードは必須ではありませんが、IF が False の場合にのみ実行されるオプションを指定する場合には ELSE が必要となります。プログラミングでは、常に ELSE を指定することをお勧めします。
この行型の ELSE キーワードは、E と省略することができます(より新しいブロック型の ELSE キーワードは、省略することができません)。IF とELSE の従来のフォームと新規のフォームは構文的には異なり、結合することができません。したがって、あるタイプの IF は別のタイプの ELSE と組み合わせることはできません。
expression 引数は単一の式、またはコンマ区切りの式のリストの形式を取ります。式リストでは、Caché は左から右の順で、個別の式を評価します。False である式に遭遇すると評価を終了します。すべての式が True と評価されると、Caché は同じ行の expression 引数に続くコマンドを実行します。式が 1 つでも False と評価されると、Caché は残りのすべての式を無視し、同じ行にあるコマンドは実行せず、次のコード行から実行を継続します。
関連項目
-
IF コマンド
-
DO (従来のバージョン) コマンド
-
GOTO コマンド
-
QUIT コマンド
-
$TEST 特殊変数