for(i=0;i>=0;i++); 単語

ムゲンループ

1.6千文字の記事

#include <stdio.h>

#include <nico/dic.h>

unsigned int i;

for(i=0;i>=0;i++);とは,動画永久に終わらない、いわゆる無限ループ状態にあることを、C及びそのを受けたプログラミング言語のfor文で表わそうとしたものである。

printf("for文とは\n");

for文は、


for (init; contidion; increment)
sentence


のように記述する。

実行される際は、

  1. initが実行される
  2. conditionが判定され、偽であればループを終了する
  3. sentenceが実行される
  4. incrementが実行される
  5. このリストの2番に飛ぶ

のように実行される。

例えば、


int i;
for (i = 0; i < 10; i++)
printf("%d\n", i); /* i を表示する */


とすると、0から9までの数字が表示されるであろう。

printf("このタグについて\n");

このタグで用いられている for(i=0;i>=0;i++); について説明する。

この場合、initi=0に、conditionはi>=0に、incrementi++(iの値を1加算する)に対応する。sentenceが;、つまり「何もしない」が該当する。

実行すると、

  1. iに0が代入される
  2. iが0以上でなければループを終了する
  3. 「何もしない」を実行する
  4. iの値が1大きくなる
  5. このリストの2番に飛ぶ

ここで、通常の計算機では変数が扱える範囲には限度がある。例えば、16ビット符号付き整数であれば-32768から32767、8ビット符号整数であれば0から255などのような制限がある。この制限をえて計算をすると、あたかも数の範囲が循環しているかのような結果が得られる。例えば、前述の16ビット符号付き整数を使っていて、32767に1を加えると-32768になってしまうのである。

そのため、このタグで使われているiという変数がどのような変数であるかによって、無限ループになるか否かが決定される。 仮に符号整数であれば、最大値に1を加えると0になるため、iが0以上という条件が偽になることはない。したがって無限ループとなる。一方、符号付き整数であった場合、最大値に1を加えると最小値となる。ここで符号付き整数の最小値は負数であるため、iは0以上という条件が偽になってしまう。そのため無限ループにはならない。

通常、無限ループをする場合には for(;;) sentencewhile(true) sentence を用いる。(sentenceは無限に実行する文、trueはその言語に応じたの表現)forの括弧の中が省略されているが、この場合条件は常に成り立っているとされる。

なお、余談ではあるが、iが浮動小数点数であった場合、ある一定以上の数になると1を加えても元の数になってしまう。そのため無限ループが成立する。

printf("無限ループの例\n");


#include <stdio.h>
int main(void) {
for (;;) {
printf("おめーの席ねぇから!\n");
}
return 0;
}


forを使った例。


#include <stdio.h>
int main(void) {
while (1) {
printf("おめーの席ねぇから!\n");
}
return 0;
}


whileを使った例。whileはforのうちinitとincrementいものと考えることができる。


#include <stdio.h>
int main(void) {
omeeno_seki_neekara:
printf("おめーの席ねぇから!\n");
goto omeeno_seki_neekara;
return 0;
}


gotoを使った例。ニコニコ動画無限ループ@ジャンプを使っているため、これが最も近い。

printf("関連動画\n");

printf("関連商品\n");

ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
横山緑[生放送]

提供: うnこ(本物)

もっと見る

急上昇ワード改

最終更新:2025/12/20(土) 01:00

ほめられた記事

最終更新:2025/12/20(土) 01:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP