制御構造
Algol 60、C、C++、Haskell、Java、Pascal、Perl、PHP、PL/I、Python、PowerShellなど。この種の言語は文の並びをひとまとめ(ブロック)にする何らかの方法を持っている。 Algol 60、Pascal: begin ... end C、C++、Java、Perl、PHP、PowerShell: 中括弧を使用 { ... } PL/1: DO ... END Python: インデントのレベルを使用(オフサイドルール参照) Haskell: インデントのレベルか中括弧を使用でき、それらを自由に混合可能
ループ途中でループ処理を中断してループの先頭に戻り、次の繰り返しを開始したい場合がある。言語によってはこれを実現する continue とか skip、next といった文を用意している。その効果は最も内側のループ本体の実行を途中で止め、そのループの次の繰り返しを最初から行う。もしそのときの実行が最後の繰り返しであった場合、ループそのものを早期に終了させるのと同じことになる。
↑ Eiffelには retry という予約語があるが、これはループ制御用ではなく例外処理用である。
↑ ループ変化条件は整数でなければならず、超限的変化条件はサポートしていない
1 2 3 4 5 6 7 8 9 深いブレイクを実現するには、例外処理を活用する必要がある。
1 2 Java Modeling Language (JML) が必要
1 2 3 カウントループは例えばPythonの range() を使って incrementing list や generator でシミュレートされる。
↑ オブジェクト群のイテレーションは PHP 5 で追加された。
↑ while 関数を使用する(関数ではないが、関数だと誤解している者が多い)。
↑ ユーザーが汎用ループ関数を定義できる。
↑ ただし、標準ライブラリに無限ループを実現するloopメソッドが存在する。
Ada、Algol 68、Modula-2、Fortran 77、Visual Basic など。終了キーワードはいくつかの種類がある。 Ada、Fortran 90: 終了キーワードは end + 空白 + 開始キーワード。例えば、if ... end if, loop ... end loop Algol 68: 開始キーワードを逆に綴る。例えば、if ... fi, case ... esac Fortran 77: 終了キーワードは end + 開始キーワード。例えば IF ... ENDIF, DO ... ENDDO Modula-2: 開始キーワードに関わらず常に END という終了キーワードを使う。 Visual Basic: 制御構造毎に固有の終了キーワード。If ... End If; For ... Next; Do ... Loop; While ... Wend
条件式と条件付き実行は、条件節(たいていは「式 (プログラミング)」)の評価結果の真偽によって異なる式やブロックを選択実行する。