#include <stdio.h>

int main()
{
int x;
for(x=0;x=1;x++){
printf("繰り返し\n");
}
}


なんでこれは無限に繰り返されるのでしょうか?


x=1のとき 処理=printf("繰り返し\n"); をするんですよね?
変数の更新は処理が1度行われるごとに実行されるんですよね?

なら、
初期x=0のとき→x=1ではないのでなにもしない
なにもしない処理を行った(こんなのありですか?)ので、変数の更新が実行され、
xに1が足され、x=1になるのでprintfが実行される。
printfが実行されたので、変数の更新が実行され、
xに1が足され、x=2になるので、x=1の条件に当てはまらないので、
printfは実行されない。

よって「繰り返し」は1個だけ表示されるはずだと思いました。

というか処理条件が=のときだけ矛盾しまくります。
例えばfor(x=0;x=0;x++)でやってみると、何も起こりません。
0以外にすると、無限に繰り返されます。
>や>=のときは考えたとおりの結果になるんですが・・・
もしかして処理条件に=(のみ)を使ってはいけないんでしょうか?