Cの基礎
for 文の再初期化は、繰り返し文実行後
for 文で再初期化が行われるのは、繰り返し文実行後です。
下のようなプログラムを試しに書いてみると、iの値は、for文を実行している間は、増えないで、繰り返し文を最後まで実行した後に1増えているのが分かります。
1++ の様に、再初期化の文を、繰り返し文より先に書いてしまうので、for文に入ると同時にiが増えてしまうように思ってしまいますがどうもそうではないようです。
『基本情報技術者 らくらく突破 C言語』P105には、「for 文は繰り返し文の最後に実行する再初期化を、繰り返し文より上方に記述しますから、実行の順と記述の順が一致していません。」「ワルツのリズムで覚えてください。」と書いてあります。
言われてみればその通り。あんまり意識したことなかった。
i++ の所を、++i にしても、結果は同じでした。
#include <stdio.h>
int i;
int main(){
for ( i = 0; i < 3; i++ ) {
printf("i = %d \n ", i);
}
printf("おしまい i = %d \n", i);
return 0;
}
実行結果
i = 0 i = 1 i = 2 おしまい i = 3
説明が分かりづらい
それにしても、『基本情報技術者 らくらく突破 C言語』の説明はもう少しどうにかなりませんかね。上のマーカー部分でも、私のように書けば分かるものを、このように書くととっても分かりにくいです。
これはまだいい方で、何べん読んでも「知らないものにとっては理解できない表現」が、たくさんあります。
なんでこんなに分かりにくい表現をして、平気でいられるんだか。