C言語なら俺に聞け! Part 〈57〉
■ このスレッドは過去ログ倉庫に格納されています
0104デフォルトの名無しさん
NGNGint 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以外にすると、無限に繰り返されます。
>や>=のときは考えたとおりの結果になるんですが・・・
もしかして処理条件に=(のみ)を使ってはいけないんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています