「無限ループ」の版間の差分
ナビゲーションに移動
検索に移動
(→非推奨) |
|||
(3人の利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
− | '''無限ループ''' | + | '''無限ループ'''(読み:むげんループ、[[英語]]: infinite loop)とは、[[無限]]に繰り返される[[ループ]]のことである。 |
− | また、英語読みの「[[インフィニット・ループ]] | + | また、英語読みの「[[インフィニット・ループ]]」はアメリカ合衆国カリフォルニア州クパティーノに存在する環状道路由来の地名であり、現在その中には[[アップル]]本社のビル群が建っている。 |
==例== | ==例== | ||
− | ===[[C言語]] | + | ===C言語=== |
− | < | + | ====推奨==== |
− | + | 2013年時点で[[C言語]]においてもっとも推奨されている無限ループの記述方法である。 | |
+ | <source lang="c">for(;;)処理;</source> | ||
+ | ====非推奨==== | ||
+ | この記法は無限ループの書き方としてよく登場するが、馬鹿な[[コンパイラ]]ではループの度に無駄な判定処理が入るという欠点がある。 | ||
+ | [[Visual C++]]ではC4127警告<ref>http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx</ref>が発令され怒られる。 | ||
+ | [[マイクロソフト]]社内でこの記法を用いると[[リストラ]]対象となるかは定かではない。 | ||
+ | <source lang="c">while(1)処理;</source> | ||
− | + | ====非推奨==== | |
− | + | [[不具合]]、いわゆる[[バグ]]である。 | |
− | + | <source lang="c"> | |
− | + | int i,j; | |
− | |||
− | < | ||
for(i=0;i<10;i++) { | for(i=0;i<10;i++) { | ||
for(j=0;j<10;i++)処理; | for(j=0;j<10;i++)処理; | ||
− | }</ | + | } |
− | + | </source> | |
− | |||
− | < | + | ====非推奨==== |
+ | [[不具合]]、いわゆる[[バグ]]である。 | ||
+ | <source lang="c"> | ||
+ | int i,j; | ||
for(i=0;i<100;i++) { | for(i=0;i<100;i++) { | ||
for(i=0;i<10;i++)処理; | for(i=0;i<10;i++)処理; | ||
− | }</ | + | } |
− | + | </source> | |
− | < | + | ====非推奨==== |
− | for(i=0;i<=INT_MAX;i++)処理;</ | + | [[不具合]]、いわゆる[[バグ]]である。 |
+ | <source lang="c"> | ||
+ | int i; | ||
+ | for(i=0;i<=INT_MAX;i++)処理; | ||
+ | </source> | ||
− | ===[[Active Basic]] | + | ===Active Basic=== |
+ | [[Active Basic]]における無限ループ。 | ||
<pre>Do | <pre>Do | ||
処理 | 処理 | ||
Loop</pre> | Loop</pre> | ||
− | ===[[HSP]] | + | ===HSP=== |
+ | [[HSP]]における無限ループ。 | ||
<pre>repeat | <pre>repeat | ||
処理 | 処理 | ||
loop</pre> | loop</pre> | ||
− | ===x86[[アセンブラ]] | + | ===x86アセンブラ=== |
+ | [[x86]]の[[アセンブラ]]における無限ループ。 | ||
<pre>thelabel: | <pre>thelabel: | ||
jmp thelabel</pre> | jmp thelabel</pre> | ||
== 関連項目 == | == 関連項目 == | ||
+ | * [[無限のリピート]] | ||
== 参考文献 == | == 参考文献 == | ||
{{reflist}} | {{reflist}} |
2014年11月4日 (火) 02:17時点における最新版
無限ループ(読み:むげんループ、英語: infinite loop)とは、無限に繰り返されるループのことである。
また、英語読みの「インフィニット・ループ」はアメリカ合衆国カリフォルニア州クパティーノに存在する環状道路由来の地名であり、現在その中にはアップル本社のビル群が建っている。
目次
例[編集 | ソースを編集]
C言語[編集 | ソースを編集]
推奨[編集 | ソースを編集]
2013年時点でC言語においてもっとも推奨されている無限ループの記述方法である。
for(;;)処理;
非推奨[編集 | ソースを編集]
この記法は無限ループの書き方としてよく登場するが、馬鹿なコンパイラではループの度に無駄な判定処理が入るという欠点がある。 Visual C++ではC4127警告[1]が発令され怒られる。 マイクロソフト社内でこの記法を用いるとリストラ対象となるかは定かではない。
while(1)処理;
非推奨[編集 | ソースを編集]
int i,j;
for(i=0;i<10;i++) {
for(j=0;j<10;i++)処理;
}
非推奨[編集 | ソースを編集]
int i,j;
for(i=0;i<100;i++) {
for(i=0;i<10;i++)処理;
}
非推奨[編集 | ソースを編集]
int i;
for(i=0;i<=INT_MAX;i++)処理;
Active Basic[編集 | ソースを編集]
Active Basicにおける無限ループ。
Do 処理 Loop
HSP[編集 | ソースを編集]
HSPにおける無限ループ。
repeat 処理 loop
x86アセンブラ[編集 | ソースを編集]
thelabel: jmp thelabel