+=は加算代入演算子と呼ばれ変数が”🐦いま🐦”格納している数値に何らかの数値を加えたものをその変数に代入する働きがあります。a+=5;はa=a+5;を表しています

アレサ「おはようございます


今日は


+=


加算代入演算子についてもう少し詳しく学んでみようと思います。


a=5;


と記述するとどのような命令が


コンピュータに


与えられるかおわかりですか


ソーラーさん」



ソーラー「う~ん どのように想いが伝わるかということか


う~ん」


アレサ「それは・・・


??


とりあえず


a=5;


と記述すると


変数aに5を代入する命令をコンピュータに与えていました。」


#include <stdio.h>


int main(void) {


int a;

a = 5;


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

return 0;


}


アレサ「


そして代入演算子には


=


以外に


+=

-=

*=

/=

%=

などの


さまざまな代入演算子が存在しました。


+=は加算代入演算子

-=は除算代入演算子

*=は乗算代入演算子

/=は除算代入演算子

%=は剰余代入演算子とよばれています。


今日は


+=は加算代入演算子をもちいた


プログラムを詳しく


観察してみたい とおもいます。」



#include <stdio.h>


int main(void) {


int a = 5;

a+=5;

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

return 0;


}


コンパイル結果

10


ソーラー「a+=5;


よくみると


これ なんか表記法がおかしくない?


ふつうは


a+5


のように


プラスの右側には


足し合わせる数値がないといけないんじゃないかな?」


アレサ「この


a+=5;


という表記は数学の世界ではあらわれない表記法です。


+=



コンピュータに命令をあたえるために作製された演算子なので


数学の世界には登場しないのですの。」


ソーラー「確かに数学の世界ではコンピュータに命令しないからね」


アレサ「はい


加算代入演算子は


            🐦いま🐦

   

変数が格納している数値に


さらに何かの数値を加えたものを


変数に代入するときにもちいられます。


たとえば



a=a+5;



            🐦いま🐦


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


変数aに代入せよ


という命令を


コンピュータにあたえますの。」



ソーラー「🐦いま🐦?」



アレサ「いまのプログラムにおいて


#include <stdio.h>


int main(void) {


int a = 5;

a+=5;

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

return 0;


}


コンパイル結果

10


アレサ「


int a=5;

が実行されると


変数aには


数値5が格納されます


この段階では


変数aには


数値5が格納されています。



そして


a+=5;


の命令文の実行に移るわけですが


a+=5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえますの。


ですから


変数aには 


            🐦いま🐦



数値5が格納されているので



変数aに


            🐦いま🐦


格納されている数値5に5がくわえられた


数値10が



変数aに代入されます。」




ソーラー「🐦いま🐦



と記述してあるということは


この


🐦いま🐦



なにか重要な意味があるのかな?」



アレサ「そうなんですの。


次のプログラムをご覧ください。



#include <stdio.h>


int main(void) {


int a = 5;

a+=5;

a+=5;

a+=5;

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

return 0;


}


コンパイル結果

20


ソーラー「面白いプログラムだね。


int a = 5;

a+=5;

a+=5;

a+=5;


a+=5;

連続して3つもならんでいるね。


a+=5;

a+=5;

a+=5;



これはいったい何をあらわしてるのかな?」


アレサ「ここで


🐤🐤

a+=5;


            🐦いま🐦


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


変数aに代入せよ


という命令を


コンピュータにあたえます

🐤🐤



            🐦いま🐦


というところがポイントになってきますの。


まずこのプログラムにおいて


int a=5;

が実行されると


変数aには


数値5が格納されます。


この段階では


変数aには


数値5が格納されています。



そして


a+=5;


の命令文の実行に移るわけですが


a+=5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえますの。


ですから


変数aには 


            🐦いま🐦



数値5が格納されているので



変数aに


            🐦いま🐦


格納されている数値5に5がくわえられた


数値10が



変数aに代入されます。」


ソーラー「ここまでは


前のプログラムと一緒だね。」


アレサ「次に


2回目の

a+=5;


の命令文の実行に移るわけですが


a+=5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえますの。


ですから


変数aには 


            🐦いま🐦



数値10が格納されているので



変数aに


            🐦いま🐦


格納されている数値10に5がくわえられた


数値15が



変数aに代入されます。」


ソーラー「なるほど~」


アレサ「


次に


3回目の

a+=5;


の命令文の実行に移るわけですが


a+=5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえますの。


ですから


変数aには 


            🐦いま🐦



数値15が格納されているので



変数aに


            🐦いま🐦


格納されている数値15に5がくわえられた


数値20が



変数aに代入されます。


そうして


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


が実行されることにより


コンパイル結果

20

表示されるのですの。


いかがですか


ソーラーさん。」


ソーラー「それで


🐦いま🐦がポイントになってくるんだね。」


アレサ「そして


a+=5;



a=a+5;


に等しくなっていますので


次のようにプログラムを書き換えることもできます。


#include <stdio.h>


int main(void) {


int a = 5;

a=a+5;

a=a+5;

a=a+5;

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

return 0;


}


コンパイル結果


20


ソーラー「一見すると難しそうに見えるプログラムだけど


🐦いま🐦



意識すれば簡単かな・・


まずこのプログラムにおいて


int a=5;

が実行されると


変数aには


数値5が格納されるよね


この段階では


変数aには


数値5が格納されています。



そして


a=a+5;


の命令文の実行に移るんだけど


a=a+5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえるんだよね。



だから


変数aには 


            🐦いま🐦



数値5が格納されているので



変数aに


            🐦いま🐦


格納されている数値5に5がくわえられた


数値10が


変数aに代入されるというわけなんだね」


アレサ「はい


その通りです。


ソーラーさん。」


ソーラー「次に


2回目の

a=a+5;


の命令文の実行に移るんだけど


a=a+5;





            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえるので


変数aには 


            🐦いま🐦



数値10が格納されているので



変数aに


            🐦いま🐦


格納されている数値10に5がくわえられた


数値15が


変数aに代入されるっと


こういうわけだね。


次に


3回目の

a=a+5;


の命令文の実行に移るんだけど


a=a+5;




            🐦いま🐦




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


変数aに代入せよ



という命令を


コンピュータにあたえるので



変数aには 


            🐦いま🐦



数値15が格納されているので



変数aに


            🐦いま🐦


格納されている数値15に5がくわえられた


数値20が



変数aに代入されます。


そうして


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


が実行されることにより


コンパイル結果

20

表示されるという


こういう仕組みなんだね


アレサ。


ここでも


🐦いま🐦がポイントになってくるんだね。」


アレサ「そうなんです ソーラーさん(*´▽`*)」







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

作者を応援しよう!

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

応援したユーザー

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