本記事は、Javaを一から学んでいく際の学習メモとして書かれています。
主にインプレスから出版されている「スッキリわかるJava入門 第2版 (スッキリシリーズ)」の内容に沿ったかたちで学習していきます。
式について
まず、以下のような文を式(expression)と呼びます。
int a = 5; int b = a + 1;
この時、変数a、b
や値1
のようなものをオペランド(operand)と呼び、+
や=
を演算子(operator)と呼びます。
また、すべての式はこのオペランドと演算子から成り立っています。
演算子について
演算子については、主に以下の4つに分類されます。
算術演算子
基本的な四則演算を行うために利用するのが、以下の5つの算術演算子になります。
演算子 | 機能 | 例 |
+ | 加算 | 1 + 1 => 2 |
- | 減算 | 1 - 1 => 0 |
* | 乗算 | 1 * 1 => 1 |
/ | 除算 | 1 / 1 => 1 |
% | 剰余 | 1 % 1 = > 0 |
文字列結合演算子
文字列のオペランド同士を結合させるのが 文字列結合演算子と呼ばれるもので、上記の算術演算子の+
を利用します。
演算子 | 機能 | 例 |
+ | 文字列連結 | "Hello" + ", " + "World!" => "Hello, World!" |
代入演算子
左オペランドを右オペランドの変数に代入する際に利用するのが代入演算子となります。
演算子 | 機能 | 例 (a = 1) |
= | 右辺を左辺に代入 | a = 2 => 2 |
+= | 左辺と右辺を加算し、左辺に代入 | a += 2 => 3 |
-= | 左辺から右辺を減算し、左辺に代入 | a -= 2 => -1 |
*= | 左辺と右辺を乗算し、左辺に代入 | a *= 2 => 2 |
/= | 左辺と右辺を除算し、左辺に代入 | a /= 2 => 0 |
%= | 左辺と右辺を除算し、その余りを左辺に代入 | a %= 2 => 1 |
+= | 左辺に右辺を連結し、左辺に代入 | a += "A" => "1A" |
単項演算子
単項演算子には、以下のインクリメント及びデクリメント演算子があります。
演算子 | 機能 | 例 (a = 1) |
++ | 値を1増やす | a++ => 2 |
-- | 値を1減らす | a-- => 0 |
なお、単項演算子については変数の前と後ろにのどちらに付けるかという2通りの使い方があり、前者を前置、後者を後置と呼びます。
前置は式が変数の値を返す前に1加算または減算し、後置は変数の値を返した後に1加算または減算します。
ちなみに、以下のような式があった場合、変数aに格納されている値は何になるでしょうか。
int a = 10; a = a++ + ++a + a++;
正解は34になります。
演算子の優先順位
算数の計算においても、*
は+
よりも計算における優先順位が高いように、演算子にも優先順位(precedence)が存在します。
以下のOracleのドキュメントからそれらの優先順位を確認することができます。
最後に
今回はJavaの式と演算子について、基本的なルールを学びました。
次回は今回学んだ式における型変換について学んでいきます。
参考書籍