演算子の種類

  • このエントリーをはてなブックマークに追加
  • Pocket

以前に「演算子」についてお話をしました。

ソースコード上で
演算(計算)をするための記号が「演算子」です。

一般的なプログラミング言語では、
約30種類の演算子が定義されています。

これだけある演算子ですが、
大きく3つに分類することができます。

演算子の種類

演算子は、

・単項演算子
・二項演算子
・三項演算子

の3種類に分類することができます。

さて、「項」とは一体何でしょうか。

演算をするためには、
演算の対象となるものが必要になります。

例えば、足し算をする演算子である
「+」の場合、

3 + 5

という使い方をします。

このとき、
「3」や「5」が演算の対象となります。

このような演算の対象となるものを
「項」と言います。

ちなみに「項」のことを
「オペランド」とも言います。

必要とする「項」の数によって
演算子は分類されています。

1つだけ必要とする演算子を
「単項演算子」、

2つ必要とする演算子を
「二項演算子」、

3つ必要とする演算子を
「三項演算子」

と言います。

単項演算子

代表的なものとしては
インクリメント演算子(++)と
呼ばれるものがあります。

インクリメント演算子は、
下記のような形で使います。

i++

上記の例では、
「変数iの値に1を足す」という
演算を行います。

二項演算子

「+」「-」「*」「%」など

四則演算に代表される
数多くの演算子があります。

三項演算子

項が3つ必要な演算子です。

「そんな演算子は知らない」

という方もいるのでは
ないでしょうか。

三項演算子はマイナー?

実は、この三項演算子、
プログラミングの世界では
あまり好んで使われていないようです。

ソースコードが読みにくくなる、
という理由から、

企業によっては、
三項演算子の使用を禁止している
ところもあるようです。

また、
三項演算子が存在しない
プログラミング言語もあります。

例えば、Pythonには、
三項演算子はありません。

このように一見マイナーな
三項演算子ですが、

使い方によっては便利な演算子です。

三項演算子の書式

三項演算子は

「?:」

この1種類しかありません。

書式としては、

 条件式 ? 式1 : 式2

となります。

これは、
条件式を評価して正しければ
(真であれば)式1を返し、
正しくなければ(偽であれば)
式2を返します。

この説明を見て、

「if文と同じでは?」

と思われた方も
いるのではないでしょうか。

しかし、
三項演算子は演算子です。

結果として式を返します。

if文のように
条件に応じた処理を記述するのでは
ない点に注意してください。

例えば、
変数ageが20以上なら"成年"、
変数ageが19以下なら"未成年"
と表示するソースコードを

三項演算子を使って
Java言語風に書くと、
以下のようになります:

String str = null;
str = age >= 20 ? "成年" : "未成年";
System.out.println(str);

※System.out.println()は
 指定したものを画面に
 表示するためのメソッド

上記の場合、
「age >= 20」が条件式となり、
真なら"成年"が返り
変数strに代入され、
偽なら"未成年"が返り
変数strに代入されます。

これは、
三項演算子(?:)のほうが
代入演算子(=)よりも
優先順位が高いため、

先に三項演算子が実行され、
その返り値が代入演算子により
代入されることになります。

上記の例を
if文を使用して書くと、
以下のようになります:

String str = null;
if (age >= 20) {
str = "成年";
} else {
  str = "未成年";
}
System.out.println(str);

見た目には、
三項演算子のほうがif文より
スッキリして見えます。

三項演算子のほうは、
演算子の優先順位を知らないと
読み解くことができません。

このようなことから、
三項演算子を使用すると
ソースコードが読みにくいと言われます。

しかし、個人的には、
好んで良く使用しています。

書き方によっては、
先ほど3行で記述した
三項演算子のソースコードを、
1行で記述することもできます。

System.out.println(age >= 20 ? "成年" : "未成年");

kohsaka

三項演算子は演算子なので、
メソッドの引数に
記述することも可能です。

このように、
ちょっとマニアックな使い方もできる
三項演算子、

機会があれば、
是非使ってみてはいかがでしょうか。

------------------------------------------------
PS.プログラミングの基礎を学ぶ最善の方法とは?
すでに多くの人が
社会人のためのプログラミングスクール
学習を始めています。
------------------------------------------------

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する