C++の基礎: 演算子の使い方を学ぶ
概要
C言語は、最も古いプログラミング言語の一つで、他のプログラミング言語の演算子の多くは、このC言語からヒントを得ています。CとC++には同じ演算子があり、それらのほとんどは他のプログラミング言語でも同じです。
プログラミングでは、等式記号の左側にある変数は、新しい変数、つまり等式記号の右側から新しい値を持つ変数です。右側の変数は、その値を持つ現在の変数です。
例えば、aは2+3の結果を表す整数変数として定義できます。
int a = 2 , b = 3;
int c = a + b;
これは以下と同じ定義になります。
int a = 2 + 3;
初心者、またはプログラミング言語の方程式や演算子を知らない人 (つまり数学者) にとっては、奇妙に思えるかもしれません。 例えば、次のような簡単な式を見てみましょう。
int a = 2, b = 3;
b = a + b;
ここで、2行目の式は、数学的には次のようなものなので、初心者には奇妙に思えるかもしれません。
b = a + b
b - b = a
0 = a
このように、プログラミングにおいて、数学的な演算を用いることは、数理科学とは異なります。科学的な研究では、場合によっては、これらの演算(主に浮動小数点数に対する演算)において、実際の数学で行われた演算を検証しなければならないこともありますし、プログラミングの仕組みをよく理解していなければなりません。
プログラミングでは、基本的に、演算子の使い方を、「算術演算子」「代入演算子」「比較演算子」「論理演算子」に分類することができます。
1. 算術演算子
基本的な算術演算子は、以下の通りです。
加算(+)
加算は、2つの値を足す
ここでは、整数および浮動小数点数を用いた2つの異なる例を示します。
int a = 5, b = 3;
int c = a + b;
float a = 5.0, b = 3.0;
float c = a + b;
減算(-)
減算は、ある値から別の値を引く
int a = 7, b = 4;
int c = a - b;
乗算(*)
乗算は、2つの値 x * y を掛け合わせる
int a = 7, b = 4;
int c = a * b;
除算(/)
除算は、ある値を別の値で割る
int a = 8, b = 4;
int c = a / b;
剰余算(%)
剰余算は、除算した余りを返す
int a = 8, b = 4;
int c = a % b;
インクリメント(++)
変数の値を1つ加算する
int a = 7;
++a;
デクリメント(--)
変数の値を1つ減算する
int a = 7;
--a;
2. 代入演算子
基本的な代入演算子は、算術演算子と同じように、=の記号を使って変数に値を代入するために使用されます。(複合)代入演算子の例は、以下の通りです。
代入演算子 (=)
右辺の結果に左辺の変数を代入する
int a = 5 + 3;
複合代入演算子 (+=)
右辺の結果を左辺の変数に加算する
int a = 5;
a += 3;
複合代入演算子 (-=)
右辺の結果を左辺の変数に減算する
int a = 5;
a -= 3;
複合代入演算子 (*=)
右辺の結果を左辺の変数に乗算する
int a = 5;
a *= 3;
複合代入演算子 (*=)
右辺の結果を左辺の変数に乗算する
int a = 5;
a *= 3;
複合代入演算子 (/=)
右辺の結果を左辺の変数に除算する
int a = 8;
a /= 2;
複合代入演算子 (^=)
int a = 3;
a ^= 2;
複合代入演算子 (%=)
int a = 8;
a %= 2;
複合代入演算子 (&=)
int a = 8;
a &= 2;
複合代入演算子 (|=)
int a = 8;
a |= 2;
複合代入演算子 (>>=)
int a = 8;
a >>= 2;
複合代入演算子 (<<= )
int a = 8;
a <<= 2;
3. 比較演算子
すべての比較演算子の例は、以下の通りです。
int a = 5, b = 7;
if ( a==b ) std::cout << "a is equal to b \n";
if ( a!=b ) std::cout << "a is not Equal to b \n";
if ( a>b ) std::cout << "a is greater than b \n";
if ( a<b ) std::cout << "a is lower than b \n";
if ( a>=b ) std::cout << "a is greater than or equal to b \n";
if ( a<=b ) std::cout << "a is lower than or equal to b \n";
4. 論理演算子
CやC++のプログラミング言語では、 &&は論理積(AND)、|| は 論理和(OR) 、!記号は、NOTとして使用されます。
論理演算子の例は、以下の通りです。
bool a=true, b =false;
// a AND b
if ( a && b ) std::cout << "both true \n";
// a OR b
if ( a || b ) std::cout << "a or b is true \n";
// NOT (a AND b)
if ( !(a && b) ) std::cout << "both not true \n";