ループ機能の比較表
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/23 09:22 UTC 版)
プログラミング言語条件制御ループループ早期脱出継続繰り返しの再実行ループの再実行ループの正しさの保証先頭途中末尾カウントコレクション汎用無限 変化条件不変条件Ada Yes Yes Yes Yes 配列 No Yes 深い入れ子 No C Yes No Yes No No Yes Yes 深い入れ子 深い入れ子 No C++ Yes No Yes No Yes Yes Yes 深い入れ子 深い入れ子 No C# Yes No Yes No Yes Yes Yes 深い入れ子 深い入れ子 Common Lisp Yes Yes Yes Yes Yes Yes Yes 深い入れ子 No Eiffel Yes No No Yes Yes Yes No 1レベル No No No 整数のみ Yes F# Yes No No Yes Yes No No No No No FORTRAN 77 Yes No No Yes No No No 1レベル Yes Fortran 90 Yes No No Yes No No Yes 深い入れ子 Yes Fortran 95およびそれ以降 Yes No No Yes 配列 No Yes 深い入れ子 Yes Haskell No No No No Yes No Yes No No No Java Yes No Yes No Yes Yes No 深い入れ子 深い入れ子 No 拡張機能 拡張機能 JavaScript Yes No Yes No Yes Yes No 深い入れ子 深い入れ子 No OCaml Yes No No Yes 配列、リスト No No No No No PHP Yes No Yes No Yes Yes No 深い入れ子 深い入れ子 No Perl Yes No Yes No Yes Yes No 深い入れ子 深い入れ子 Yes Python Yes No No No Yes No No 深い入れ子 深い入れ子 No REBOL No Yes Yes Yes Yes No Yes 1レベル No No Ruby Yes No Yes Yes Yes No No 深い入れ子 深い入れ子 Yes Yes Standard ML Yes No No No 配列、リスト No No No No No Visual Basic .NET Yes No Yes Yes Yes No Yes ループの種類毎に1レベル ループの種類毎に1レベル Windows PowerShell Yes No Yes No Yes Yes No ? Yes ^ while (true) は構文としては無限ループ専用の構文ではないので、ここでは無限ループに含めていない。一方、for (式;;式) は無限ループ専用とみなしている ^ a b c d e f g h C言語の for (init; test; increment) は汎用であり、カウント制御専用ではないが、カウント制御として使われることが多い。 ^ a b c d e f C、C++、C# での深い入れ子からの脱出は、ラベルとgoto文を使用する。 ^ C++11標準で、範囲に基づくforループが導入された。STLには std::for_each というテンプレート関数があり、STLのコンテナに対して各要素に単項関数を適用できる。同様の機能はマクロを使っても実現可能。 ^ a b カウント制御ループは整数 interval によるイテレーションで実現される。早期脱出は exit に条件を追加することでなされる。 ^ Eiffelには retry という予約語があるが、これはループ制御用ではなく例外処理用である。 ^ ループ変化条件は整数でなければならず、超限的変化条件はサポートしていない ^ a b c d e f g h i 深いブレイクを実現するには、例外処理を活用する必要がある。 ^ a b Java Modeling Language (JML) が必要 ^ a b c カウントループは例えばPythonの range() を使って incrementing list や generator でシミュレートされる。 ^ オブジェクト群のイテレーションは PHP 5 で追加された。 ^ while 関数を使用する(関数ではないが、関数だと誤解している者が多い)。 ^ ユーザーが汎用ループ関数を定義できる。 ^ ただし、標準ライブラリに無限ループを実現するloopメソッドが存在する。
※この「ループ機能の比較表」の解説は、「制御構造」の解説の一部です。
「ループ機能の比較表」を含む「制御構造」の記事については、「制御構造」の概要を参照ください。
- ループ機能の比較表のページへのリンク