3. 演算子

再び例1.1のプログラムを見てみる.

例1.1

ここで,

c = a + b;

は変数a と変数 bの和を変数 c に代入すると説明しましたが,このように,プログラムにおいては様々な計算が必要となります.

c = a + b において a, b, c をオペランド(演算の対象),=, +, を演算子(演算するもの)と呼びます.

演算子には様々な種類がありますが,ここでは,

について説明します.

3.1 算術演算子

算術演算子は加減乗除を行うもので表3.1に示すようなものがあります.

表3.1 算術演算子の種類
演算子
機能 使用例
+
加算 c = a + b;
-
減算 c = a - b;
*
乗算 c = a * b;
/
除算 c = a / b;
%
剰余算(割り算の余り) c = a % b;

【注】 整数の割り算では商の小数点以下は切り捨てられます.

 練習問題3.1

例1.1 のプログラムを参考に2つの整数(a,b) の和、差、積、商、剰余を計算した結果を表示するプログラムを作成せよ。

3.2 関係演算子

2つの数の関係を比較します.その関係が成立していれば(真ならば) 1 に,成立していなければ(偽ならば) 0 になります.関係演算子は,後で説明する,if文などで判断条件を指定するのに使われます.関係演算子は表3.2に示すようなものがあります.

表3.2 関係演算子の種類
演算子
機能 使用例 意味
>
より大 c = a > b; a が b より大きければ c に 1(真),
そうでなければ 0(偽)を代入
<
より小 c = a < b; a が b より小さければ c に 1(真),
そうでなければ 0(偽)を代入
<=
より大か等しい c = a >= b; a が b より大きいか等しければ c に 1(真),
そうでなければ 0(偽)を代入
>=
より小か等しい c = a <= b; a が b より小さいか等しければ c に 1(真),
そうでなければ 0(偽)を代入
==
等しい c = a == b; a が b に等しければ c に 1(真),
そうでなければ 0(偽)を代入
!=
等しくない c = a != b; a が b に等しくなければ c に 1(真),
そうでなければ 0(偽)を代入

3.3 論理演算子

論理積,論理和,否定などを求めるための演算子です.論理演算子はいくつかの条件判断の組み合わせに使われます.論理演算子には表3.3に示すようなものがあります.これも,後で説明する,if文などで判断条件を指定するのに使われます.

表3.3 論理演算子の種類
演算子 機能 使用例 意味
&&
論理積
(AND, かつ)
flag = (a == b) && (c == d) a が b に等しくかつ c が d に等しいとき
flagに 1(真),そうでなければ 0(偽)を代入
||
論理和
(OR,または)
flag = (a == b) || (c == d) a が b に等しいか,または c が d に等しいとき
flagに 1(真),そうでなければ 0(偽)を代入
!
論理否定 flag = !(a == b) a が b に等しくないとき flagに 1(真),
そうでなければ 0(偽)を代入

3.4 インクリメント演算子・デクリメント演算子

インクリメント演算子は1を加算し,デクリメント演算子は1を減算します.これらの演算子はカウンタによく使用されます.それぞれの演算子は表3.4のように表されます.

表3.4 インクリメント・デクリメント演算子
演算子 機能 使用例 意味
++ 1を加える a++; または ++a; a = a + 1;
-- 1を引く a--; または --a; a = a - 1;

++a (変数の前に演算子がある)を前置演算子,a++(変数の後ろに演算子がある)を後置演算子とよぶ.例えば a が 5 なら, a++; の演算結果は 6 となり,++a; の演算結果も 6 となります.しかし以下のようにインクリメントまたはデクリメントした結果を代入するような場合はその意味が違ってきます.

a = 5;
c = ++a;

この場合,a は 6,c も 6 となります.

a = 5;
c = a++;

この場合,a は 6となりますが,c は 5 になります.

すなわち,++a の場合は,まずその変数に 1 を加えてから左辺に代入されます.従って c は 6となります.
一方,a++ の場合は,まず変数を左辺に代入してから,その変数に 1 が加えられます.従って c は 5 となります.

3.5 代入演算子

代入演算子はこれまでに使ってきた = (左辺の変数に右辺の値を代入)があります.この他にも,= と算術演算子を組み合わせることによって簡略化したものがあります.代入演算子には,四則演算のほかにビットを操作するための演算子も用意されていますが,ここでは四則演算についてのみ説明します.代入演算子には,表3.5 に示すようなものがあります.

表3.5 代入演算子の種類
演算子 使用例 意味
= c = a; c に a の内容を代入
+= c += a; c = c + a;
-= c -= a; c = c - a;
*= c *= a; c = c * a;
/= c /= a; c = c / a;
%= c %= a; c = c % a;

3.6 演算子の優先順位

いくつかの演算子を組み合わせて使う場合,どのような順序で処理されるかの優先順位が決められています.もし,演算の順序を自分で明確に決定したい場合には,( )で囲むとよいでしょう.ただし ( ) を多数使用すると演算式が複雑になってしまうので注意が必要です.これまでに説明した演算子の優先順位は表3.6のようになっています.

表3.6 演算子の優先順位
優先順位 演算子 結合規則

( ) 左から右
++ -- !  + - 右から左
* / % 左から右
+ - 左から右
== != 左から右
&& 左から右
|| 左から右
= += -= *= /= %= 右から左

【注】 単項の +, - は二項形式より高い優先度をもつ
(c = -a; が単項 c = a - b; が二項形式です)

練習問題3.2

長方形の長辺と短辺を入力し,四辺の和を表示するプログラムを作成せよ.辺の長さは実数値とする.