算術演算子を初心者向けにかみ砕いて、動く例と練習問題(解答付き)まで用意します。各コードはそのまま javac / java で試せるように書きます。さっそくいきます!
Javaで数を計算する記号です。主なものは次の5つ。
+(足し算)-(引き算)*(掛け算)/(割り算)%(余り/剰余)
基本の例(直感)
int a = 10 + 4; // a は 14
int b = 7 - 3; // b は 4
int c = 6 * 3; // c は 18
int d = 7 / 3; // d は 2 ← 整数同士の割り算は小数切り捨て
int e = 7 % 3; // e は 1 ← 余り(7÷3 の余り)
Javaポイント:
7 / 3は数学的には 2.333… ですが、int / intなら 小数以下は切り捨て られて2になります。
型(データ型)に注意しよう
演算する値の型(int, long, float, double)によって結果の型が決まります。Javaには自動で「より精度の高い型」に変換するルールがあります(型昇格)。
優先度(高→低):double → float → long → int(※小さいものから大きいものへ変換されるイメージ)
例:
double x = 10 + 4.0; // 右辺は double として扱われ、結果は 14.0
double y = 10 / 4.0; // 2.5(少なくとも一方が浮動小数点なら小数が残る)
int z = 10 / 4; // 2(両方 int なので小数部分は切り捨て)
Javaもし整数同士の割り算で小数の答えが欲しいなら、片方を double にキャストするか、最初から浮動小数点リテラルを書く:
double correct = (double)10 / 4; // 2.5
// または
double correct2 = 10 / 4.0; // 2.5
Java割り算とゼロ
- 整数を 0 で割ると実行時例外(
ArithmeticException)になります。
int a = 1 / 0; // 実行時に java.lang.ArithmeticException: / by zero
Java- 浮動小数点(
double/float)を 0.0 で割ると例外にはならず、InfinityやNaNが返ります。
double d = 1.0 / 0.0; // Infinity
double n = 0.0 / 0.0; // NaN (Not a Number)
Java→ 実務では割る前に if (b == 0) のチェックをするのが鉄則。
剰余演算子(%)の注意点(負の数)
% は「余り」を返しますが、符号(正負)は被除数(割られる数)と同じ符号になります(Javaの仕様)。
例:
System.out.println( 7 % 3); // 1
System.out.println(-7 % 3); // -1
System.out.println( 7 % -3); // 1
System.out.println(-7 % -3); // -1
Java優先順位(演算子の順番)
*, /, % は +, - より先に計算されます。明示的に順序を変えたいときは () を使いましょう。
例:
int r = 2 + 3 * 4; // 2 + (3*4) = 14
int s = (2 + 3) * 4; // (5)*4 = 20
Java実際に動くサンプル(ファイル形式)
下は CalcExample.java として保存して実行できます。
// CalcExample.java
public class CalcExample {
public static void main(String[] args) {
int a = 7, b = 3;
System.out.println("a + b = " + (a + b)); // 10
System.out.println("a - b = " + (a - b)); // 4
System.out.println("a * b = " + (a * b)); // 21
System.out.println("a / b = " + (a / b)); // 2 (整数割り算)
System.out.println("a % b = " + (a % b)); // 1 (余り)
// 浮動小数点で割る
System.out.println("a / (double)b = " + (a / (double)b)); // 2.3333333333333335
// 0で割るチェック
int divisor = 0;
if (divisor != 0) {
System.out.println("safe divide: " + (a / divisor));
} else {
System.out.println("割る数が 0 です — エラーを防ぐため実行しません");
}
}
}
Javaコンパイル/実行:
javac CalcExample.java
java CalcExample
よくある「つまずきポイント」と対処法
- 「整数同士だと小数が出ない」
→ 必要なら(double)でキャストするか片方を4.0のようにする。 - 「ゼロで割ってしまい例外が出る」
→ 割る前にif (b == 0)チェックする。 - 「余りの符号が期待と違う」
→ Javaは余りの符号を被除数(最初の数)に合わせます。負の数の余りに注意。 - 「演算の順序」
→()を使って意図を明確にする。
練習問題(初心者向け)
各問題の下に解答と簡単な解説を用意します。まず自分で考えてから確認してね。
問1
int x = 10 / 4;
Javax の値は何になる?
答え:2
解説:int / int なので小数は切り捨て。
問2
double y = 10 / 4;
double z = 10 / 4.0;
Javay と z はそれぞれ何になる?
答え:y = 2.0(右辺が int どうしで 2、代入で 2.0 に変換)z = 2.5(右辺に 4.0 があるので浮動小数点計算)
問3
int a = -7 % 3;
Javaa の値は?
答え:-1
解説:余りの符号は被除数(-7)に合わせられる。
問4
次の式の結果は?
int v = 2 + 3 * 4 - 6 / 3;
Java答え:2 + (3*4) - (6/3) = 2 + 12 - 2 = 12
問5(少し応用)
10 を 3 で割ったときの商(小数まで)を double 型で求めるコードを書きなさい。
模範解答:
double result = 10 / 3.0; // 3.3333333333333335
// または
double result2 = (double)10 / 3;
Java最後に — おすすめの練習
- 自分でいくつかの式を書いて
System.out.println()してみる(整数/浮動小数点/負の数を混ぜる)。 - 割り算の前に
ifでゼロチェックを入れる習慣をつける。 - 余り演算 (
%) を使って「偶数/奇数判定」や「時間の繰り上げ(例:秒→分)」などの簡単なプログラムを作ると理解が深まります。

