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

imported>MikeCAT
C言語のコードをsourceタグを使った記述に変更
5行目: 5行目:
==例==
==例==
===[[C言語]]===
===[[C言語]]===
<pre>for(;;)処理;</pre>
<source lang="c">for(;;)処理;</source>
* 2013年時点でもっとも推奨されている記述方法である。
* 2013年時点でもっとも推奨されている記述方法である。




<pre>while(1)処理;</pre>
<source lang="c">while(1)処理;</source>
* この記法は馬鹿なコンパイラではループの度に無駄な判定処理が入るという欠点がある。
* この記法は馬鹿なコンパイラではループの度に無駄な判定処理が入るという欠点がある。
* [[Visual C++]]ではC4127警告<ref>http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx</ref>が発令され怒られる。[[マイクロソフト]]社内でこの記法を用いると[[リストラ]]対象となるかは定かではない。
* [[Visual C++]]ではC4127警告<ref>http://msdn.microsoft.com/ja-jp/library/6t66728h.aspx</ref>が発令され怒られる。[[マイクロソフト]]社内でこの記法を用いると[[リストラ]]対象となるかは定かではない。




<pre>int i,j;
<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++)処理;
}</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;
<source lang="c">
for(i=0;i<=INT_MAX;i++)処理;</pre>
int i;
for(i=0;i<=INT_MAX;i++)処理;
</source>


===[[Active Basic]]===
===[[Active Basic]]===