代入演算子 +=, -= , *= , /=, の仕組みをみていきましょう。
代入演算子 +=, -= , *= , /=, の仕組みをみていきましょう。
アレサ 「そろそろプログラムを組む土台をつくりあげていきましょう。
#include <stdio.h>
int main (void)
{
int a;
a=10;
a+=3;
printf("aの値は%dです\n",a);
return 0;
}
プログラムの実行結果は
aの値は13です。
となります。
このa+=3;の+=は加算代入演算子とよばれています。
加算代入演算子は
+=の左側にある変数aが今、格納している数値に右側の数値をプラスしたものを
変数aに代入するという機能があります
今のプログラムの場合
a+=3;
は
変数aが今格納している数値10に3を足したものを
変数aに代入するというはたらきがあります。
a=a+3;
が実行されているとも言えます。
a=a+3;
この記述方法はプログラム特有のものですね
a=a+3;
は
数学の
a=a+3という意味ではありません。
a=a+3;
は命令文であり
変数aに変数aが今格納している値に3を加えたものを代入せよ
とコンピュータに命令しているのです
加算代入演算子については
次のエピソードで詳しく述べてみたいとおもいます。
もう一つ別の代入演算子の例をみてみましょう。
#include <stdio.h>
int main (void)
{
int a;
a=10;
a-=3;
printf("aの値は%dです\n",a);
return 0;
}
プログラムの実行結果は
aの値は7です。
となります
この命令文
a-=3;
の-=は減算代入演算子とよばれています。
減算代入演算子-=は
-=の左側にある変数aが今、格納している数値から右側の数値をマイナスしたものを
変数aに代入するという機能があります
a=a-3;
が実行されているともいえますね。
ここでも
a=a-3;
は
数学の
a=a-3
という意味ではありません。
a=a-3;
は命令文であり
変数aに変数aが今格納している値から3を引いたものを代入せよ
とコンピュータに命令しているのです。
この場合a-=3;
が実行されると
aが今、格納している値10から3をひいたもの
すなわち
7
が
aに代入されます。
では、さらに別の代入演算子の例をみていきましょう。
#include <stdio.h>
int main (void)
{
int a;
a=10;
a*=3;
printf("aの値は%dです\n",a);
return 0;
}
プログラムの実行結果は
aの値は30です。
となります
このa*=3;
の*=は乗算代入演算子とよばれています。
乗算代入演算子*=は
変数aが今、格納している値に*=の右側にある数値3を掛けたものを
変数aに代入するという機能があります
今のプログラムの場合
a*=3;
が実行されて
変換aが今、格納している値10に3をかけたものが
変換aに代入されています。
a=a*3;
が実行されているともいえます。
ここでも
a=a*3;
は
数学の
a=a*3
という意味ではありません。
a=a*3;
は命令文であり
変数aに変数aが今、格納している値に3をかけたものを代入せよ
とコンピュータに命令しているのです。
では次に
もう1つ代入演算子の例をみていきましょう。
#include <stdio.h>
int main (void)
{
int a;
a=10;
a/=3;
printf("aの値は%dです\n",a);
return 0;
}
プログラムの実行結果は
aの値は3です。
となります
このa/=3;の/=は除算代入演算子とよばれています。
除算代入演算子/=には
変数aが今、格納している値を/=の右側の数値3で割った値を
変数aに代入するという
機能があります
この場合の
a/=3;
は
変数aが今、格納している値10を3をわったものを
変数aに代入しています。
a=a/3;
が実行されているともいえますね。
ここでも
a=a/3;
は
数学の
a=a/3
という意味ではありません。
a=a/3;
は命令文であり
変数aに変数aが今格納している値10を3でわったものを代入せよ
とコンピュータに命令しているのです。
このとき
変数aの今、格納している値は10となっています。
ですので
a/3は
10/3
つまり
特殊なタイプの整数値同士の割り算となっています。
つまり
整数値を整数値で割ると計算結果も
小数点以下は切り捨てられ整数値になるので
通常の計算では
10÷3=3.3333333・・・・・
となるはずの小数点以下は切り捨てられ
10÷3=3となり
3が変数aに代入され
aの値は3となります。」
ソーラー「そして
次は・・・」
アレサ「次は
剰余代入演算子%=
の例をみていきましょう。
#include <stdio.h>
int main (void)
{
int a;
a=10;
a%=3;
printf("aの値は%dです\n",a);
return 0;
}
プログラムの実行結果
EAZY IDECの場合
Visual Studioの場合
aの値は1です。
となります
このa%=3;の%=は剰余代入演算子とよばれています。
剰余代入演算子%=は
変数aが今、格納している値を%=の右側の数値3で割った時の余りを
変数aに代入するという
機能があります
この場合の
a%=3;
は
変数aが今、格納している値10を3で割ったときの余り1を
変数aに代入しています。
a=a%3;
が実行されているともいえますね。
a=a%3;
は命令文であり
変数aに変数aが今格納している値10を3でわった時の余り1を代入せよ
とコンピュータに命令しているのです。
これらの5つの代入演算子
+=(加算代入演算子)
-=(減算代入演算子)
*=(乗算代入演算子)
/=(除算代入演算子)
%=(剰余代入演算子)
は
a+=3;
a-=3;
a*=3;
a/=3;
a%=3;
の命令文をみていただければおわかりになられますように
aという項
と
3という項
に作用しています。
このように(2つの項)に作用する演算子は
2項演算子とよばれています。」
ソーラー 「そして
単項(一つの項)に作用する演算子は
単項演算子とよばれているので
たとえば
-10
では
-は10という単項(一つの項)に作用しているので
単項演算子とよばれています。
では プログラム内で
+10+500と記述された場合は
この+は単項演算子なのでしょうか?
+10+500の10の左側の+は単項演算子
右側の+は10と500の二項に作用して足し合わせを行っているので
二項演算子とよばれています。
これで すこしだけプログラムについて詳しくなったね。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます