Tips

続・とってもわかりやすいJava 【第1回 演算子って何??】
2014.07.15

続・とってもわかりやすいJava 【第1回 演算子って何??】

◆演算子って何??

以前に「とっても簡単なJava 第1回~第7回」という記事がありました。

時間は空いてしまいましたが、今回はその続きという位置づけで「演算子」について説明したいと思います。

「演算子って何?」と思われる方もいらっしゃるでしょう。

しかし特別難しいということはなく、皆さんもご存じの「+」や「>」等が演算子の一種にあたります。

つまり計算や比較で用いられる記号のことですね。

演算子には大きく分けて4種類あります。(表をクリックで拡大)

1.算術演算子

図2

2.代入演算子、複合代入演算子

図3

3.関係演算子

図4

4.論理演算子

図5

以上の4種類です。

今回は4つに分類されるものの中でも、特に重要なものをピックアップして説明したいと思います。


◆「++」インクリメント(算術演算子)

「++」(インクリメント)は、「変数の値を1増やす」という意味を持ちます。

int n = 0;
n++; //もしくは ++n;

上のように使うと、nの値は0から1増えて、1になります。

これに繰り返しの処理を加えると、1,2,3,……と回数を数えることができるようになります。

繰り返しの処理についてはまた次回説明します。

ただ少々ややこしいのが、「++」が変数の前につく場合(前置)と、後ろにつく場合(後置)で処理が異なるという点です。

この違いについて説明します。

  • 前置…計算するに1加える
  • 後置…計算したに1加える

このような違いがあります。

ではここで問題です。

【問,以下の場合、xとyの値は前置の場合、後置の場合、それぞれいくつになるでしょう?】

  • 〈前置〉
x = 10;
y = ++x + 3
  • 〈後置〉
x = 10;
y = x++ + 3

【答え】

〈前置〉

xは11

yは14

〈後置〉

xは11

yは13

以上の結果になります。

【解説】

  • 〈前置〉

「++」が前置の場合はyの式が計算されるに1が加えられるので、

①まず「x」は、10に1が加えられ11になります。

②次にx + 3。xは11なので、「y」は14になります。

  • 〈後置〉

「++」が後置の場合は式が計算されたに1が加えられるので、

① まずx + 3。xは10なので「y」は13になります。

②次にxに1が加えられ、「x」は11になります。

以上のような違いが〈前置〉〈後置〉にはあります。

そして「++」を 「- -」 に置き換えれば1を減らす処理になります。

「++」のインクリメントに対して、この 「- -」 をデクリメントと言います。

デクリメントも前置と後置があるので注意して下さい。

「-」をふたつ続けてしまうとつながって見えてしまうので、見やすくするため間に半角スペースがあります。


◆「=」(代入演算子)

プログラミングにおいて「=」は皆さんがよく知っている等号ではありません。

「=」は左辺に右辺を代入するという意味を持ちます。

そのため左辺は必ず変数でなければなりません。

では例を挙げてみましょう。

int n = 5;

この式はn(左辺)に5(右辺)を代入しています。

もしこれが5 = int n;だったら成り立ちません。

もうひとつ例を挙げてみます。

int n = 5;
n = n + 10;

2行目であれ?と疑問に思われた方もいるかもしれません。

ですが先ほど述べたように「=」は等号ではなく、代入を意味します。

すると2行目はn + 10、つまり5 + 10を左辺のnに代入するので nは15に上書きされます。

この上書きを再代入と言います。


◆「+=」(複合代入演算子)

今度は「+」と「=」が複合された代入演算子です。

a += 3;

これは実はa = a + 3;を短縮したものなのです。

処理としてはaの値を3増やしたということになります。

この処理は先ほど紹介したインクリメントやデクリメントと同じ処理になります。

つまり「a++」は「a += 1」や「a = a + 1」に書き換え可能ということなのです。

同様に、「a–」は「a -= 1」や「a = a -1」に書き換えることができます。


◆「&」「|」(論理演算子)

論理演算子は関係式(boolean)の値同士を計算する場合に用います。

1. 「&」(アンド)

左辺と右辺がともにtrueだったらtrueを返し、それ以外はfalseを返します。

「true」 & 「true」 → 「true」

「true」 & 「false」 → 「false」

2. 「|」(パイプ)

左辺と右辺のどちらかがtrueだったらtrueを返し、それ以外はfalseを返します。

「true」 | 「false」 → 「 true」

「false」 | 「false」 → 「false」

3. 「&&」、「||」

「&」と「|」にはふたつ続けたものもあります。

では「ひとつ」のものと「ふたつ」のものではどのような違いがあるのでしょうか。

「ひとつ」のものは左辺と右辺それぞれを必ず「true」か「false」か判断します。

一方「ふたつ」のものは左辺で結果がわかる場合、右辺は確認しません

  • 例えば「&」の場合、

「false」 & 「true」 → 「false」

「false」 & 「false」 → 「false」

左辺が「false」ならば必ず「false」が返ってきます。

  • 同様に「|」の場合、

「true」 | 「true」 → 「true」

「true」 | 「false」 → 「true」

左辺が「true」ならば必ず「true」が返ってきます。

左辺の時点で結果がわかっているのに、わざわざ右辺を調べるのは無駄ですよね。

そのような無駄を省くために「&&」と「||」が使われるのです。

今回は演算子の中でも特に重要なものをピックアップしました。

次回は「繰り返し」について書きたいと思います。

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search