Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

If...Then...Else

文のグループを、式の値によって条件付で実行します。

Synopsis

If condition Then statements [Else elsestatements ] 

Or, you can use the block form syntax: 

If condition Then
    [statements]
[ElseIf condition-n Then
    [elseifstatements]] . . .
[Else
    [elsestatements]]
End If

引数

If...Then...Else 文の構文は、以下の部分で構成されています。

condition True または False で評価される式。
statements コロンで区切られた単独もしくは複数の文。条件が True の場合に実行されます。
condition-n condition と同じです。
elseifstatements 関連する condition-n がTrue の場合に実行される単独もしくは複数の文。
elsestatements 前の condition または condition-n の式が True の場合に実行される単独もしくは複数の文。

概要

短い単純な条件には単数行の形式 (最初の構文) を使用できます。しかし、ブロック形式 (2 つ目の構文) は、単数行の形式よりも構造化が容易で柔軟性があり、多くの場合理解や、保守、デバッグが簡単です。

ブロックの If (2 つ目の構文) を実行する際、条件が評価されます。条件が True であれば、Then に続く文が実行されます。条件が False の場合は、各 ElseIf (存在する場合) が順に評価されます。True の条件が見つかった場合、対応する Then に続く文が実行されます。ElseIf 文のいずれも True でない場合 (または ElseIf 節が存在しない場合)、Else に続く文が実行されます。Then または Else 文の実行後、End If に続く文で実行が継続されます。

ElseElseIf 節はどちらもオプションです。ブロックの If 内には ElseIf 文はいくつでも記述できますが、Else 節の後には記述できません。ブロックの If 文は入れ子にできます。つまり、一方の中に入れることができます。

Then キーワードに続く文は、検証され、文がブロックの If であるか否か判断されます。Then の後の同じ行でコメント以外が表示される場合、文は単数行の If 文として処理されます。

ブロックの If 文は行で最初の文でなければなりません。ブロックの IfEnd If 文で終了する必要があります。

メモ

単数行の構文では、If...Then 分岐の結果として、複数の文を実行することが可能ですが、それらはすべて同じ行になければならず、以下の文にあるように、コロンで区切る必要があります。

If A > 10 Then A = A + 1 : B = B + A : C = C + B

関連項目

FeedbackOpens in a new tab