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

#include <iostream>


using namespace std;


int main() {



int sum=0;


int a;


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


sum+=a;


}


cout << sum <<" \n";


return 0;


}



ビルド実行結果


6


マックス「な、なんだ? このプログラムは?」


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


sum+=a;



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


記述されているよね。


int sum=0;


はわかりやすくても


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


sum+=a;


}


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


そこで


この部分を


わかりやすく


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


次のようになります。



#include <iostream>


using namespace std;


int main() {


int sum = 0;


int a;


a = 1;

sum += a;


a = 2;

sum += a;


a = 3;

sum += a;


cout<< sum << " \n";

return 0;


}



ビルド実行結果

6




ソーラー「こうなるかな


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


てんC「


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;


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


てんC「普通にfor文を展開してみたのですね。」


ソーラー「そうなんだ。それでは


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


#include <iostream>


using namespace std;


int main() {


int sum=0;


int a;


a=1;

sum+=a;


a=2;

sum+=a;


a=3;

sum+=a;


cout<< sum << " \n";


return 0;


}




ビルド実行結果


6


ソーラー「まず


int sum=0;


int a;


a=1;

sum+=a;


a=2;

sum+=a;


a=3;

sum+=a;



最初の


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^)/」


てんC「


そして


最後に


cout<< sum << " \n";


が実行され


ビルド実行結果




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


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

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る