for文と加算代入演算子を用いた数値の総和をもとめるプログラムを考察してみましょう🌞

#include <stdio.h>


int main(void){


int sum=0;

int a;

for(a=1;a<=3;a++){

sum+=a;

}

printf("%d\n",sum);

return 0;

}


コンパイル結果

6


ソーラー「このプログラムはfor文の中に


sum+=a;


加算代入演算子が用いられた命令文が


記述されているよね。


for(a=1;a<=3;a++){

sum+=a;

}


ここの部分がちょっと理解しにくいかな。


そこで


この部分を

わかりやすく


変形してみるとプログラムは


次のようになります。


#include <stdio.h>


int main(void){


int sum=0;

int a;

a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;


printf("%d\n",sum);

return 0;

}


コンパイル結果

6


ソーラー「こうなるかな


どうかな。 大分簡単になったかな」


アレサ「うふ


for(a=1;a<=3;a++){

sum+=a;

}


a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;

におきかわったのですね。」



ソーラー「


for(a=1;a<=3;a++){

sum+=a;

}


aの値に応じて

3回

sum+=a;

が繰り返されるんだけど


どのように繰り返されるかというと


まず


for(a=1;a<=3;a++)の

初期化式a=1;

より

a=1のときから


つまり

a=1;

の状態で

sum+=a;

が実行されます。


次に

a++により

a=1から2に増加して

a=2のときの

つまり

a=2;

の状態で


sum+=a;

が実行されます。


次に

a++により

a=2から3に増加して

a=3のときの

つまり

a=3;

の状態で


sum+=a;

が実行されます


つまり

int a;

a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;

が実行されることになります。


ですので


int sum=0;

int a;

for(a=1;a<=3;a++){

sum+=a;

}

int sum=0;

int a;

a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;

に置き換えるということができたわけなんだね。」


アレサ「そのような仕組みになっているのですね」


ソーラー「それでは


変更されたプログラムをみていこうかな」


#include <stdio.h>


int main(void){


int sum=0;

int a;

a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;


printf("%d\n",sum);

return 0;

}


コンパイル結果

6


ソーラー「まず


int sum=0;

int a;

a=1;

sum+=a;

a=2;

sum+=a;

a=3;

sum+=a;


最初の

sum+=a;

が実行されるんだけど


sum+=a;


は  いま🌞🌞


変数sumに格納されている数値0に

変数aが格納している数値1を加えたものを

変数sumに格納せよ


という命令文なので


変数sumに格納される数値は1


になるんだね。


その次の命令文


a=2;

により


aの値が2のときの

sum+=a;

が実行されるんだけど


sum+=a;


は  いま🌞🌞


変数sumに格納されている数値1に

変数aが格納している数値2を加えたものを

変数sumに格納せよ


という命令文なので


変数sumに格納される数値は

3

になるんだ。


そして


その次の命令文


a=3;

により


aの値が3のときの

sum+=a;

が実行されるんだけど


sum+=a;


は  いま🌞🌞


変数sumに格納されている数値3に

変数aが格納している数値3を加えたものを

変数sumに格納せよ


という命令文なので


変数sumに格納される数値は6


になるというわけなんだ\(^o^)/」


アレサ「


そして


最後に


printf("%d\n",sum);


が実行され


コンパイル結果


コマンドプロンプト画面に


表示されたというわけなのですね」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます