「無限ループ」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の3版が非表示)
1行目: 1行目:
'''無限ループ'''(読み:むげんループ、英語: infinite loop)とは、[[無限]]に繰り返される[[ループ]]のことである。
+
'''無限ループ'''(読み:むげんループ、[[英語]]: infinite loop)とは、[[無限]]に繰り返される[[ループ]]のことである。
  
また、英語読みの「[[インフィニット・ループ]]」はアメリカ合衆国カリフォルニア州クパティーノに存在する環状道路由来の地名であり、その中にはアップル本社のビル群が建っている。
+
また、英語読みの「[[インフィニット・ループ]]」はアメリカ合衆国カリフォルニア州クパティーノに存在する環状道路由来の地名であり、現在その中には[[アップル]]本社のビル群が建っている。
  
 
==例==
 
==例==
===[[C言語]]===
+
===C言語===
<pre>for(;;)処理;</pre>
+
====推奨====
* 2013年時点でもっとも推奨されている記述方法である。
+
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>
  
<pre>while(1)処理;</pre>
+
====非推奨====
* この記法は馬鹿なコンパイラではループの度に無駄な判定処理が入るという欠点がある。
+
[[不具合]]、いわゆる[[バグ]]である。
* [[Visual C++]]ではC4127警告<ref>http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx</ref>が発令され怒られる。[[マイクロソフト]]社内でこの記法を用いると[[リストラ]]対象となるかは定かではない。
+
<source lang="c">
 
+
int i,j;
 
 
<pre>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++)処理;
}</pre>
+
}
* [[不具合]]、いわゆる[[バグ]]である。
+
</source>
 
 
  
<pre>int i,j;
+
====非推奨====
 +
[[不具合]]、いわゆる[[バグ]]である。
 +
<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++)処理;
}</pre>
+
}
 
+
</source>
  
<pre>int i;
+
====非推奨====
for(i=0;i<=INT_MAX;i++)処理;</pre>
+
[[不具合]]、いわゆる[[バグ]]である。
 +
<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アセンブラ[編集 | ソースを編集]

x86アセンブラにおける無限ループ。

thelabel:
jmp thelabel

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]