分岐構造
分岐構造は、条件をテストし、その結果に基づいて異なる流れに メソッドを導きます。
If...Else...End if
If...Else...End if
による制御フロー構造の正式な構文は以下のようになります:
If(Boolean_Expression)
statement(s)
Else
statement(s)
End if
Else
部分はオプションであり、省略して以下のように記述できます:
If(Boolean_Expression)
statement(s)
End if
If...Else...End if
構造は、条件 (ブール式) が true か false かによって、処理の選択肢を2つメソッドに与えます。 ブール式が true の場合は、テストのすぐ後のステートメントを実行し、 ブール式が FALSE の場合には、Else 文のすぐ後のステートメントを実行します。 任意の Else
が省略されていた場合、End if
のすぐ後のステートメント (あれば) へと実行が続行されます。
ブール式は常に全体が評価されるという点に注意してください。 たとえば、以下のような場合:
If(MethodA & MethodB)
...
End if
この場合、両方のメソッドが true である場合に限り、式は true になります。 しかしながら MethodA が false であっても、4Dは_MethodB_ も評価するため、これは時間の無駄になります。 この場合には、以下のような構造を使用するほうが賢明といえます:
If(MethodA)
If(MethodB)
...
End if
End if
上記の結果はほぼ同じで、MethodB は必要な場合にのみ評価されます。
例題
// ユーザーに名前の入力を求めます
$Find:=Request("名前を入力してください")
If(OK=1)
QUERY([People];[People]LastName=$Find)
Else
ALERT("名前が入力されませんでした")
End if
Tip: 一方の条件に実行ステートメントがない分岐処理を書くこともできます。 下のようなコードはどちらも有効です:
If(Boolean_Expression)
Else
statement(s)
End if