メソッドが単純か複雑かに関係なく、開発者は3つのプログラミング構造のうち、1つ以上のそれを常に使用します。プログラミング構造は、メソッド内で文が実行される順序を決定する実行フローをコントロールします。3つのタイプの構造があります:
4Dのプログラミング言語には、これらの構造を制御するステートメントがあります。
シーケンシャル構造は単純な線形構造です。シーケンシャルは、4Dが最初から最後まで次々に実行する一連のステートメントです。例えば:
OUTPUT FORM([People];"Listing")
ALL RECORDS([People])
DISPLAY SELECTION([People])
オブジェクトメソッドで頻繁に使用される1行から成るルーチンは最も簡単なシーケンシャル構造の例です:
[People]Last Name:=Uppercase([People]Last Name)
Note: Begin SQL / End SQLキーワードを使用して、シーケンシャル構造が4DのSQLエンジンで実行されるよう区切ることができます。詳細はこれらのキーワードの説明を参照してください。
分岐構造は、条件をテストし、その結果に基づいて異なる流れのパスにメソッドを導きます。条件はTRUEまたはFALSEに評価されるブール式です。まず分岐構造には構造があり、これは2つの選択肢のうちのいずれかにプログラムの流れを導きます。他の分岐構造には構造があり、これは多くの選択肢の中の1つだけにプログラムの流れを導きます。
メソッドの作成にあたって、何度も同じ処理を繰り返すことがあります。これに実現するために、4Dは3つのループ構造を備えています:
ループを制御する方法には、条件が満たされるまでループする方法と、指定した回数だけループする方法の2通りがあります。各ループ構造にはいずれの方法も用いることができますが、While ループとRepeat ループは条件が満たされるまで繰り返す場合に、For ループは指定した回数だけループする場合の利用に適切です。
Note: 4Dはプログラム構造 (If/While/For/Caes of/Repeat) を512レベルの深さ(入れ子)まで記述できます。