「無限ループ」の版間の差分
| (3人の利用者による、間の9版が非表示) | |||
| 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}} | |||