第4回 演算を行うための演算子
はじめに
前回は、画面へ値を表示する方法や、キーボードから値を入力する方法について学びました。
しかし、プログラムは値を表示したり入力したりするだけではありません。入力された値を使って計算を行い、その結果を利用することも重要な役割です。
例えば、次のような処理はすべて計算を行っています。
- 商品の合計金額を求める
- テストの平均点を計算する
- 消費税を計算する
- ゲームでプレイヤーの体力を減らす
このような計算を行うために使用するのが演算子です。
今回の到達目標
- 演算子とは何かを説明できる。
- 算術演算子を使用して計算ができる。
- 計算結果を変数へ保存できる。
- 演算の優先順位を理解できる。
演算子とは
演算子とは、値に対して計算などの処理を行うための記号です。
C++にはさまざまな種類の演算子がありますが、今回は計算を行うための算術演算子について学びます。
算術演算子
算術演算子には、次のようなものがあります。
演算子
意味
例
+
足し算
3 + 2
-
引き算
3 - 2
*
掛け算
3 * 2
/
割り算
6 / 2
%
余り
7 % 3
これらは、普段数学で使用する記号とほぼ同じ意味で使用できます。
計算してみよう
演算子は数値同士だけでなく、変数に保存された値にも使用できます。
#include <iostream>
int main()
{
int a = 10;
int b = 3;
std::cout << a + b << std::endl;
std::cout << a - b << std::endl;
std::cout << a * b << std::endl;
std::cout << a / b << std::endl;
std::cout << a % b << std::endl;
}
実行結果
13
7
30
3
1
ここで注目してほしいのは、aやbではなく、それぞれの変数に保存されている値が計算に使用されていることです。
計算結果を変数へ保存する
計算した結果は、そのまま変数へ保存できます。
int math = 80;
int english = 70;
int total = math + english;
このプログラムでは、mathとenglishを足した結果がtotalへ保存されます。
保存された値は、これまでと同じように画面へ表示できます。
std::cout << total;
実行結果
150
このように、「計算する」「結果を保存する」という流れは、プログラムで非常によく使用されます。
代入演算子「=」について
ここで、一つ重要なことを確認しておきましょう。
次のプログラムを見てください。
int x = 5;
x = x + 3;
数学では、
x = x + 3
という式は成り立ちません。
しかし、プログラムでは意味が異なります。
プログラムの=は、
右辺の計算結果を左辺の変数へ保存する
という意味を持っています。
そのため、
x = x + 3;
は、
x + 3を計算する- 計算結果を
xへ保存する
という順番で処理が行われます。
例えば、
x = 5
だった場合、
5 + 3 = 8
となり、最終的にxには8が保存されます。
演算の優先順位
複数の演算子を組み合わせた場合は、計算する順番が決まっています。
例えば、
int result = 2 + 3 * 4;
は、
2 + (3 × 4)
として計算されます。
そのため、
14
になります。
これは、普段の数学と同じ考え方です。
括弧を使用する
計算する順番を変えたい場合は、括弧を使用します。
int result = (2 + 3) * 4;
この場合は、
(2 + 3) × 4
となるため、
20
になります。
複雑な計算では、括弧を使用した方が読みやすいプログラムになります。
整数の割り算に注意
整数同士を割り算すると、小数部分は切り捨てられます。
std::cout << 5 / 2;
実行結果
2
「2.5になるのでは?」と思うかもしれません。
しかし、5も2も整数であるため、結果も整数となり、小数部分は切り捨てられます。
一方、どちらか一方が小数になると、小数まで計算されます。
std::cout << 5.0 / 2;
実行結果
2.5
使用するデータ型によって、計算結果が変わることを覚えておきましょう。
複合代入演算子
変数に対して同じ演算を行って代入する場合は、複合代入演算子を使用できます。
通常の書き方
複合代入演算子
a = a + 5;
a += 5;
a = a - 5;
a -= 5;
a = a * 5;
a *= 5;
a = a / 5;
a /= 5;
a = a % 5;
a %= 5;
どちらも同じ結果になります。
初心者のうちは通常の書き方でも問題ありませんが、複合代入演算子もよく使用されるため、ここで紹介しておきます。
インクリメント・デクリメント
変数の値を1だけ増やしたり減らしたりする場合は、専用の演算子が用意されています。
i = i + 1;
は、
i++;
と書くことができます。
同様に、
i = i - 1;
は、
i--;
と書くことができます。
それぞれインクリメント演算子、デクリメント演算子と呼ばれます。
今回は「1だけ増減させるための書き方」として覚えておけば十分です。
反復処理(ループ)を学ぶ際に、改めて詳しく説明します。
まとめ
今回は、プログラムで計算を行うための算術演算子について学びました。
- 演算子は、値に対して計算を行うための記号です。
- 算術演算子を使用すると、足し算・引き算・掛け算・割り算などの計算ができます。
- 計算結果は変数へ保存できます。
=は数学の等号ではなく、「右辺の値を左辺へ代入する」という意味を持っています。- 整数同士の割り算では、小数部分が切り捨てられることに注意しましょう。
- 複合代入演算子やインクリメント演算子は、同じ処理を簡潔に記述するための便利な書き方です。
次回は、計算結果や入力された値によって処理を切り替えるための条件分岐について学びます。