制御構造とは? わかりやすく解説

制御構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 13:57 UTC 版)

制御構造(せいぎょこうぞう)は、コンピュータプログラミング言語、特に手続き型プログラミング[1]命令型プログラミング[2]において、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「 」などの構造(言語の構成要素)である[3]


  1. ^ while (true) は構文としては無限ループ専用の構文ではないので、ここでは無限ループに含めていない。一方、for (式;;式) は無限ループ専用とみなしている
  2. ^ a b c d e f g h C言語の for (init; test; increment) は汎用であり、カウント制御専用ではないが、カウント制御として使われることが多い。
  3. ^ a b c d e f C、C++、C# での深い入れ子からの脱出は、ラベルとgoto文を使用する。
  4. ^ C++11標準で、範囲に基づくforループが導入された。STLには std::for_each というテンプレート関数があり、STLのコンテナに対して各要素に単項関数を適用できる[9]。同様の機能はマクロを使っても実現可能[10]
  5. ^ a b カウント制御ループは整数 interval によるイテレーションで実現される。早期脱出は exit に条件を追加することでなされる。
  6. ^ Eiffelには retry という予約語があるが、これはループ制御用ではなく例外処理用である。
  7. ^ ループ変化条件は整数でなければならず、超限的変化条件はサポートしていない[1]
  8. ^ a b c d e f g h i 深いブレイクを実現するには、例外処理を活用する必要がある。
  9. ^ a b Java Modeling Language (JML) が必要
  10. ^ a b c カウントループは例えばPythonの range() を使って incrementing list や generator でシミュレートされる。
  11. ^ オブジェクト群のイテレーションは PHP 5 で追加された
  12. ^ while 関数を使用する(関数ではないが、関数だと誤解している者が多い)。
  13. ^ ユーザーが汎用ループ関数を定義できる。
  14. ^ ただし、標準ライブラリに無限ループを実現するloopメソッドが存在する。
  1. ^ procedural programming
  2. ^ imperative programming
  3. ^ bit 編集部『bit 単語帳』共立出版、1990年8月15日、122頁。ISBN 4-320-02526-1 
  4. ^ https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
  5. ^ Böhm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966.
  6. ^ Meyer, Bertrand (1991). Eiffel: The Language. Prentice Hall. pp. 129–131 
  7. ^ Predicates and Specification Expressions in "JML Reference Manual"
  8. ^ Common Lisp LOOP macro”. 2012年9月8日閲覧。
  9. ^ for_each. Sgi.com. Retrieved on 2010-11-09.
  10. ^ Chapter 1. Boost.Foreach. Boost-sandbox.sourceforge.net (2009-12-19). Retrieved on 2010-11-09.
  11. ^ Knuth, Donald E. "Structured Programming with go to Statements" =ACM Computing Surveys 6(4):261-301, December 1974.
  12. ^ Dahl & Dijkstra & Hoare, "Structured Programming" Academic Press, 1972.
  13. ^ Zahn, C. T. "A control statement for natural top-down structured programming" presented at Symposium on Programming Languages, Paris, 1974.
  14. ^ 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
  15. ^ http://catb.org/jargon/html/C/COME-FROM.html
  16. ^ http://www.nurs.or.jp/~sug/soft/super/longjmp.htm#sec36



制御構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/12 05:34 UTC 版)

C Shell」の記事における「制御構造」の解説

csh条件分岐反復という制御構造を提供している。条件分岐としては if 文switch文がある。反復としては、while 文foreach 文repeat 文がある。

※この「制御構造」の解説は、「C Shell」の解説の一部です。
「制御構造」を含む「C Shell」の記事については、「C Shell」の概要を参照ください。


制御構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/11 03:47 UTC 版)

Pxem」の記事における「制御構造」の解説

制御構造として条件制御ループのみが使用できる。それらの内容次の通りである。 コマンド処理内容C言語での表現.w、.a スタック内に何もない、またはスタックから値を一つポップしてその値がゼロでない間、その二コマンド間の処理内容実行し続ける。 while(stackIsEmpty()||stackPop()!=0){ // 処理内容} .x.a スタック内に値が一つだけある、スタック内に何もない、またはスタックから値を二つポップポップした順にx、yとする)してxがyより小さい間、その二コマンド間の処理内容実行し続ける。 while(1){ if(stackHasMoreThanTwo()){ int x=stackPop(); int y=stackPop(); if(!(xy)) break; } // 処理内容} .z.a スタック内に値が一つだけある、スタック内に何もない、またはスタックから値を二つポップポップした順にx、yとする)してxがyと等しくない間、その二コマンド間の処理内容実行し続ける。 while(1){ if(stackHasMoreThanTwo()){ int x=stackPop(); int y=stackPop(); if(x==y) break; } // 処理内容}

※この「制御構造」の解説は、「Pxem」の解説の一部です。
「制御構造」を含む「Pxem」の記事については、「Pxem」の概要を参照ください。


制御構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/15 06:29 UTC 版)

MBASIC」の記事における「制御構造」の解説

MBASICの制御構造には、条件判定の IF...THEN...ELSE... 、 WHILE...WEND ループGOTO 、 GOSUB があった。 CASE はなかったが、 ON...GOTO... による多方向分岐があった。サブルーチンには引数がなく、全ての変数グローバル変数だった。MBASIC構造化プログラミング必須としていなかったので、容易にスパゲッティコードとなってしまった。

※この「制御構造」の解説は、「MBASIC」の解説の一部です。
「制御構造」を含む「MBASIC」の記事については、「MBASIC」の概要を参照ください。


制御構造

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/03 14:17 UTC 版)

AWK」の記事における「制御構造」の解説

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 版)

Ruby」の記事における「制御構造」の解説

ほかの言語でもよくみられるような制御構造を用いることができる。 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言語)」の概要を参照ください。

ウィキペディア小見出し辞書の「制御構造」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



制御構造と同じ種類の言葉


固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「制御構造」の関連用語

制御構造のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



制御構造のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの制御構造 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのC Shell (改訂履歴)、Pxem (改訂履歴)、MBASIC (改訂履歴)、AWK (改訂履歴)、Ruby (改訂履歴)、キーワード (Java) (改訂履歴)、キーワード (C言語) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS