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

ムゲンループ

1.6千文字の記事
これはリビジョン 142959 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

#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++); について説明する。

この場合、initはi=0に、conditionはi>=0に、incrementはi++(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が浮動小数点数であった場合は最大値にさらに加算をすると無限大となる。無限大に加算をしても無限大であり、かつ無限大は0以上であるため、無限ループが成立する。

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


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

forを使った例。


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

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


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

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

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

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

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

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

おすすめトレンド

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

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

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

ほめられた記事

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

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

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

OK

追加に失敗しました。

OK

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

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

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

OK

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

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

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

TOP