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

編集の要約なし
 
(3人の利用者による、間の5版が非表示)
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}}