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;
が実行されます。
sum+=1;
が実行されるのですね
次に
a++により
a=1から2に増加して
a=2のときの
つまり
a=2;
が実行された状態で
sum+=a;
が実行されます。
sum+=2;
が実行されるのですね
次に
a++により
a=2から3に増加して
a=3のときの
つまり
a=3;
が実行された状態で
sum+=a;
が実行されます
sum+=3;
が実行されるのですね
つまり
int a;
a=1;
sum+=a;
a=2;
sum+=a;
a=3;
sum+=a;
すなわち
sum+=1;
sum+=2;
sum+=3;
が実行されることになります。
ですので
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;
の
int sum=0;
int a;
a=1;
により
int型の変数sumには0
が
int型の変数aには1
が格納されることになります
次に
最初の
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);
が実行され
プログラムの実行結果
6
が
コマンドプロンプト画面に
表示されたというわけなのですね」
😊
このプログラムでは
最初
sumに0が代入されており
sumに
1
2
3
が
足しあわされています
これは
0+1+2+3
の
総和を求めるプログラムになっています(*´▽`*)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます