今回は《基本的な計算について学ぼう》というテーマで記事をまとめます。
プログラミングにおける「計算」は「変数」と同じレベルで重要なので、今回もしっかり学んでおきましょう。
尚、現在執筆中のC言語入門記事は以下の人を対象としています。
- プログラミング未経験の人
- C言語プログラミングの学習をこれから始めたい人
- C言語プログラミングの学習を始めたばかりの人
基本的な計算について学ぼう
算術演算子【四則演算と剰余計算】
C言語における四則演算は、一般的な算数とほぼ同じ考え方で使用できます。
また、四則演算とは別に、割り算の余りを計算する(剰余計算)演算子が実装されています。四則演算と合わせて覚えておきましょう。
各種演算とその演算子(記号)および、サンプルコード、実行結果をまとめたので一通り確認してみてください。
演算 | 演算子 |
---|---|
足し算(加算) | + |
引き算(減算) | - |
掛け算(乗算) | * |
割り算(除算) | / |
割り算の余り(剰余) | % |
#include<stdio.h> void main(){ printf("1 + 2 = %d\n", 1 + 2); printf("4 - 3 = %d\n", 4 - 3); printf("5 * 6 = %d\n", 5 * 6); printf("8 / 2 = %d\n", 8 / 2); printf("8 %% 3 = %d\n", 8 % 3); /* 画面に"%"を表示するには"%%"と書く */ }
変数を用いた計算
計算結果は変数に代入することができます。
変数名 = 計算結果;
また、計算には変数を用いることができます。
更に、変数を用いた計算の結果は自分自身(計算に使用した変数)に代入することもできます。つまり、「変数aに1を加算する」といったことができるのです。
#include<stdio.h> void main(){ int num_add = 1 + 2; /* num_add に 3 が格納される */ int num_sub = 4 - 3; /* num_sub に 1 が格納される */ int num_mul = 5 * 6; /* num_mul に 30 が格納される */ int num_div = 8 / 2; /* num_div に 4 が格納される */ int num_sur = 8 % 3; /* num_sur に 2 が格納される */ printf("num_add = %d\n", num_add); printf("num_sub = %d\n", num_sub); printf("num_mul = %d\n", num_mul); printf("num_div = %d\n", num_div); printf("num_sur = %d\n", num_sur); printf("\n"); /* 変数を用いた計算 */ int num1 = 1; int num2 = 0; /* 計算前の値を表示しておく */ printf("num1 = %d, num2 = %d\n", num1, num2 ); /* 変数を用いた計算結果を別の変数に代入する */ /* ※num2 には 3(=1+2) が格納される */ num2 = num1 + 2; printf("num1 = %d, num2 = %d\n", num1, num2 ); /* 変数を用いた計算結果を自分自身(計算に使用した変数)に代入する */ /* num1 に 4(=1+3) が格納される */ num1 = num1 + 3; printf("num1 = %d, num2 = %d\n", num1, num2 ); }
整数の割り算
整数を割った場合、小数点が発生する場合があります。その扱いについて気になっている方もいるでしょう。
整数の割り算を行うと小数点以下が切り捨てられます。
float flt = 0; flt = 9 / 2; /* fltは浮動小数点型にも関わらず 4 が格納される */
整数と浮動小数点の計算
C言語の計算には特殊なルールがあり、整数と浮動小数点が混合された計算式の場合は浮動小数点として計算が行われます。(つまり、小数点以下が切り捨てられません)
float flt = 0; flt = 9 / 2.0; /* 整数と浮動小数点が混合された計算式なので 4.5 が格納される */
インクリメントとデクリメント【単純な加減算】
インクリメントとは? デクリメントとは?
C言語には、変数への数値の加算(+1)と減算(-1)を行う演算子が用意されています。尚、加算を『インクリメント』と呼び、減算を『デクリメント』と呼びます。
演算子は変数の前後いずれかに記述することができます。
演算 | 演算子 | 使用例 |
---|---|---|
インクリメント(加算) | ++ | num++ または ++num |
デクリメント(減算) | -- | num-- または --num |
#include<stdio.h> void main(){ int num = 5; /* インクリメント */ num++; printf("num = %d\n", num); /* デクリメント */ num--; printf("num = %d\n", num); }
代入演算子との組み合わせ
インクリメント演算子とデクリメント演算子は代入演算子と組み合わせることで1行で加減算と代入を行うことができます。
但し、演算子を記述する場所によって代入される値が異なるので注意が必要です。
パターン | 種別 | 説明 |
num++ または num-- | 後置演算 | 代入した後に計算する ※以下のコードと同じ(インクリメントの例) num2 = num1; num1++; |
++num または --num | 前置演算 | 計算した後に代入する ※以下のコードと同じ(インクリメントの例) num1++; num2 = num1; |
#include<stdio.h> void main(){ int num1 = 5; int num2 = 0; /* インクリメント(後置演算) */ num2 = num1++; printf("num1 = %d, num2 = %d\n", num1, num2); /* インクリメント(前置演算) */ num2 = ++num1; printf("num1 = %d, num2 = %d\n", num1, num2); /* デクリメント(後置演算) */ num2 = num1--; printf("num1 = %d, num2 = %d\n", num1, num2); /* デクリメント(前置演算) */ num2 = --num1; printf("num1 = %d, num2 = %d\n", num1, num2); }
次回は条件分岐
次回は、遂に「プログラミングの根幹」である『条件分岐』について解説します。
これこそがプログラミングの最終奥義といっても過言ではありません。
ご期待ください。