制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 13:57 UTC 版)
制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミング[1]や命令型プログラミング[2]において、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 」などの構造(言語の構成要素)である[3]。
- ^
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のコンテナに対して各要素に単項関数を適用できる[9]。同様の機能はマクロを使っても実現可能[10]。 - ^ a b カウント制御ループは整数 interval によるイテレーションで実現される。早期脱出は exit に条件を追加することでなされる。
- ^ Eiffelには
retry
という予約語があるが、これはループ制御用ではなく例外処理用である。 - ^ ループ変化条件は整数でなければならず、超限的変化条件はサポートしていない[1]
- ^ 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メソッドが存在する。
- ^ procedural programming
- ^ imperative programming
- ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、122頁。ISBN 4-320-02526-1。
- ^ https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
- ^ Böhm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966.
- ^ Meyer, Bertrand (1991). Eiffel: The Language. Prentice Hall. pp. 129â131
- ^ Predicates and Specification Expressions in "JML Reference Manual"
- ^ “Common Lisp LOOP macro”. 2012年9月8日閲覧。
- ^ for_each. Sgi.com. Retrieved on 2010-11-09.
- ^ Chapter 1. Boost.Foreach. Boost-sandbox.sourceforge.net (2009-12-19). Retrieved on 2010-11-09.
- ^ Knuth, Donald E. "Structured Programming with go to Statements" =ACM Computing Surveys 6(4):261-301, December 1974.
- ^ Dahl & Dijkstra & Hoare, "Structured Programming" Academic Press, 1972.
- ^ Zahn, C. T. "A control statement for natural top-down structured programming" presented at Symposium on Programming Languages, Paris, 1974.
- ^ We don't know where to GOTO if we don't know where we've COME FROM. This (spoof) linguistic innovation lives up to all expectations. By R. Lawrence Clark* From DATAMATION, December, 1973
- ^ http://catb.org/jargon/html/C/COME-FROM.html
- ^ http://www.nurs.or.jp/~sug/soft/super/longjmp.htm#sec36
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/12 05:34 UTC 版)
csh は条件分岐と反復という制御構造を提供している。条件分岐としては if 文と switch文がある。反復としては、while 文、foreach 文、repeat 文がある。
※この「制御構造」の解説は、「C Shell」の解説の一部です。
「制御構造」を含む「C Shell」の記事については、「C Shell」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/11 03:47 UTC 版)
制御構造として条件制御ループのみが使用できる。それらの内容は次の通りである。 コマンド処理内容C言語での表現.w、.a スタック内に何もない、またはスタックから値を一つポップしてその値がゼロでない間、その二コマンド間の処理内容を実行し続ける。 while(stackIsEmpty()||stackPop()!=0){ // 処理内容} .x、.a スタック内に値が一つだけある、スタック内に何もない、またはスタックから値を二つポップ(ポップした順にx、yとする)してxがyより小さい間、その二コマンド間の処理内容を実行し続ける。 while(1){ if(stackHasMoreThanTwo()){ int x=stackPop(); int y=stackPop(); if(!(x
※この「制御構造」の解説は、「Pxem」の解説の一部です。
「制御構造」を含む「Pxem」の記事については、「Pxem」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/15 06:29 UTC 版)
MBASICの制御構造には、条件判定の IF...THEN...ELSE... 、 WHILE...WEND ループ、 GOTO 、 GOSUB があった。 CASE はなかったが、 ON...GOTO... による多方向分岐があった。サブルーチンには引数がなく、全ての変数はグローバル変数だった。MBASICは構造化プログラミングを必須としていなかったので、容易にスパゲッティコードとなってしまった。
※この「制御構造」の解説は、「MBASIC」の解説の一部です。
「制御構造」を含む「MBASIC」の記事については、「MBASIC」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/03 14:17 UTC 版)
AWKの制御構造には以下のようなものがある。 if文 if (式) 式が真の時に実行される文 if (式) 式が真の時に実行される文 else 式が偽の時に実行される文 for/while文 for (初期化式; 条件式; 更新式) 実行される文 for (変数 in 配列) 実行される文 while (式) 実行される文 do 実行される文 while (式) break continue その他 next 以降の文の実行および以降のパターン処理をせずに、次のレコードの処理を開始する nextfile 現在の入力ファイルの残りを読み込まずに、次のファイルの処理を開始する return 関数の処理を停止し、関数の呼び出し元に制御を戻す。値が指定されてあれば値を返す。 exit プログラムの実行を終了させる また、制御構造の他に、以下の文がある。 {文1; 文2; ……; 文n} print printf delete 連想配列の全部ないし一部の要素を削除
※この「制御構造」の解説は、「AWK」の解説の一部です。
「制御構造」を含む「AWK」の記事については、「AWK」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/11 02:27 UTC 版)
ほかの言語でもよくみられるような制御構造を用いることができる。 if "fablic".length > 3 puts 'ya'else puts 'nop'end# 表示: yalist = [1, 2, 5, 13, 21]for item in list puts itemend# 表示: 1# 2# 5# 13# 21n = 0while n < 3 puts 'foobar' n += 1end# 表示: foobar# foobar# foobar 一部の制御構造は後述するイテレータで代替することができる。
※この「制御構造」の解説は、「Ruby」の解説の一部です。
「制御構造」を含む「Ruby」の記事については、「Ruby」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/14 08:30 UTC 版)
「キーワード (Java)」の記事における「制御構造」の解説
C言語およびC++と共通のキーワードを使用している。 分岐if, else switch, case, default 繰り返しfor, while, do ジャンプcontinue - ループの現在の反復 (iteration) をスキップする break - ループのブロックから抜け出す return - メソッドから抜け出す。戻り値のあるものは値やオブジェクトの参照を返す。
※この「制御構造」の解説は、「キーワード (Java)」の解説の一部です。
「制御構造」を含む「キーワード (Java)」の記事については、「キーワード (Java)」の概要を参照ください。
制御構造
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/14 08:29 UTC 版)
「キーワード (C言語)」の記事における「制御構造」の解説
制御に関する語もC++とほぼ共通であるが、Cには例外処理に関する語(try, catch, throw等)は存在しない。
※この「制御構造」の解説は、「キーワード (C言語)」の解説の一部です。
「制御構造」を含む「キーワード (C言語)」の記事については、「キーワード (C言語)」の概要を参照ください。
制御構造と同じ種類の言葉
固有名詞の分類
- 制御構造のページへのリンク