プログラミングでは加減乗除いわゆる四則演算はよく利用されます。
四則演算を行う場合は算術演算子を利用します。算術演算子の種類やいくつかのルールを覚えておく必要があります。
算術演算子の種類
算術演算には加減乗除と剰余算があります。
演算子 | 記述例と結果 | 補足説明 | |
---|---|---|---|
+ | 6 + 3 | 9 | 加算(足し算) |
– | 6 – 3 | 3 | 減算(引き算) |
* | 6 * 3 | 18 | 乗算 (掛け算) |
/ | 6 / 3 | 2 | 除算 (割り算) |
% | 6 % 3 | 0 | 剰余算(余りを求める) |
※剰余残は余りを求めることができる演算で、「 5 % 3」 だと結果は「2」となります。
算術演算のルール
Javaの算術演算では被演算子のデータ型が重要です。被演算子の型がどのように扱われるかが算術演算のルールのポイントになります。
ルールその1
バイト数の大きい型と小さい型で演算を行った場合は、バイト数の大きい型に変換されて演算が行われる。(※データ型のバイト数は基本データ型を参照)
int + double の演算は double + double のようにintがdouble(黄色マーカー部分)に型変換されて計算が行われます。
ルールその2
整数と浮動小数の算術演算は浮動小数の側に型が変換される。かつ、ルール1よりも優先順位が上。
つまり、long(8バイト)とfloat(4バイト)だとlongの方がバイト数が大きいがfloatに型が変換されます。
long + float の演算は float + float のようにlongがfloat(黄色マーカー部分)に型変換されて計算が行われます。
ルールその3
char、byte、shortを算術演算に利用すると、強制的にint型へ変換が行われる。
byte + short の演算はたとえ結果の数値がshortの範囲内であっても演算結果はint型となります。
byte + short は int + int へ型変換(黄色マーカー部分)されてから計算が行われます。
算術演算の演算結果
「3 + 5」という算術演算を行うと「8」という結果になります。しかし、Javaでは演算結果は被演算子によってどのような型の結果になるか決まります。
例として、int + int や int / int はどちらもint型の計算結果となります。
5 / 2 は通常の計算だと2.5になりますが、Javaでは2というint型の結果となります。
もし、2.5という結果を得たい場合は、5 / 2.0 といったように片方の被演算子をdouble型にすることになります。(int / double は型変換され double / double となり結果もdouble型)
算術演算子の演算例
演算例 | 結果 | 結果の型 |
---|---|---|
10 + 4 | 14 | int |
10 * 4 | 40 | int |
10 / 4 | 2 | int |
10 / 4.0 | 2.5 | double |
10 * 4.0 | 40.0 | double |
10 % 4 | 2 | int |
10 % 4.0 | 2.0 | double |
被演算子の片方にdouble型がある場合は、もう片方もdouble型に型変換されて後に演算が行われる為、結果もdouble型になります。
算術演算 サンプルプログラム
以下のプログラムを「Number05.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
class Number05{ public static void main(String[] args){ System.out.println(10 + 4); System.out.println(10 * 4); System.out.println(10 / 4); System.out.println(10 / 4.0); System.out.println(10 * 4.0); System.out.println(10 % 4); System.out.println(10 % 4.0); } } |
実行例
javac Number05.java
c:\work>java Number05
14
40
2
2.5
40.0
2
2.0
※実行例はコンパイルから実行までの例を表示しています。
まとめ
- 算術演算を行う場合は被演算子の型がポイント
- バイト数が大きい型とバイト数が小さい型の算術演算は、バイト数が大きい型に型変換され演算が行われる
- 整数と小数では、小数の型に変換され演算が行われる
- char、byte、shortで算術演算を行った場合は、int型に型変換される
- 演算結果は被演算子と同一の型となる(型変換が行われる場合は、型変換後の型が適用される)