Java入門 STEP3|演算子を使ってみよう
演算子とは?
Javaでは、足し算や引き算をしたり、2つの値を比べたりするときに「演算子」を使います。
例えば、足し算で使う + や、STEP2で変数に値を入れるときに使った = も演算子のひとつです。
演算子にはいくつか種類がありますが、このSTEPではよく使うものから順番に見ていきます。
| 種類 | 何をするもの? | 例 |
|---|---|---|
| 算術演算子 | 足し算や引き算などの計算 | + - * / % |
| 代入演算子 | 変数に値を入れる | = += -= |
| 比較演算子 | 2つの値を比べる | == != > < |
| 論理演算子 | 複数の条件を組み合わせる | && || ! |
算術演算子を使って計算してみよう
まずは、足し算や引き算などの計算に使う「算術演算子」から見ていきましょう。
Javaでは、次の演算子を使って計算できます。
| 演算子 | 計算 | 例 |
|---|---|---|
+ | 足し算 | 10 + 3 |
- | 引き算 | 10 - 3 |
* | 掛け算 | 10 * 3 |
/ | 割り算 | 10 / 3 |
% | 割り算の余り | 10 % 3 |
掛け算には「×」ではなく*、割り算には「÷」ではなく/を使います。
%は少し見慣れないかもしれませんが、割り算をしたときの「余り」を求める演算子です。
例えば、10 % 3の結果は1になります。
実際に計算してみよう
新しくArithmeticSampleクラスを作成してください。
クラスを作成するときは、「public static void main(String[] args)」にもチェックを入れます。
作成できたら、次のコードを入力して実行してみましょう。
public class ArithmeticSample {
public static void main(String[] args) {
int num1 = 10;
int num2 = 3;
System.out.println(num1 + num2);
System.out.println(num1 - num2);
System.out.println(num1 * num2);
System.out.println(num1 / num2);
System.out.println(num1 % num2);
}
}実行すると、コンソールには次のように表示されます。
実行結果
13
7
30
3
1
ここで、10 / 3が3になっていることに注目してください。
num1とnum2はどちらもintなので、計算結果も整数になります。そのため、小数部分は切り捨てられます。
int同士の割り算に注意int同士で割り算をすると、計算結果の小数部分は切り捨てられます。10 / 3の結果は3.333...ではなく、3になります。
小数まで計算したい場合
割り算の結果を小数まで求めたい場合は、doubleなどの小数を扱えるデータ型を使います。
例えば、次のように書きます。
double num1 = 10;
double num2 = 3;
System.out.println(num1 / num2);実行すると、次のように表示されます。
実行結果
3.3333333333333335
double同士で計算しているため、intのときとは違い、小数部分も含めた結果を得ることができます。
代入演算子を使ってみよう
STEP2では、=を使って変数に値を代入しました。
int score = 10;Javaでは、=以外にも、計算と代入をまとめて書ける演算子があります。
| 演算子 | 意味 | 同じ意味の書き方 |
|---|---|---|
+= | 足してから代入 | num = num + 5 |
-= | 引いてから代入 | num = num - 5 |
*= | 掛けてから代入 | num = num * 5 |
/= | 割ってから代入 | num = num / 5 |
%= | 余りを代入 | num = num % 5 |
例えば、
num += 5;
は、
num = num + 5;
と同じ意味です。
実際に使ってみよう
新しくAssignmentSampleクラスを作成してください。
作成できたら、次のコードを入力して実行してみましょう。
public class AssignmentSample {
public static void main(String[] args) {
int num = 10;
num += 5;
System.out.println(num);
}
}実行結果
15
最初にnumには10が入っています。
そのあと、
num += 5;
を実行しているので、numに5が足され、値が15に変わります。
+=などの書き方は、これからJavaのコードを書く中でもよく登場します。
まずは「計算して、その結果を同じ変数に入れ直す書き方」と覚えておきましょう。
インクリメント・デクリメントを使ってみよう
変数の値を「1だけ増やす」「1だけ減らす」ときは、さらに短い書き方があります。
| 書き方 | 意味 | 同じ意味の書き方 |
|---|---|---|
num++ | 1増やす | num = num + 1 |
num-- | 1減らす | num = num - 1 |
++を「インクリメント」、--を「デクリメント」と呼びます。
例えば、
num++;
と書くと、numに入っている値が1増えます。
実際に使ってみよう
新しくIncrementSampleクラスを作成してください。
作成できたら、次のコードを入力して実行してみましょう。
public class IncrementSample {
public static void main(String[] args) {
int num = 10;
num++;
System.out.println(num);
num--;
System.out.println(num);
}
}実行結果
11
10
最初にnumには10が入っています。
num++;を実行すると1増えて11になり、そのあとnum--;を実行すると1減って10に戻ります。
++と--は、同じ処理を繰り返すときにもよく使います。
繰り返し処理については、後のSTEPで実際に使いながら学んでいきます。
++numという書き方もある
num++のほかに、
++num
と書くこともできます。
どちらもnumを1増やしますが、ほかの処理と組み合わせたときに動きが少し変わります。
今はまず、num++で値を1増やせることを覚えておけば大丈夫です。
比較演算子で値を比べてみよう
2つの値が同じか、どちらが大きいかなどを調べるときは「比較演算子」を使います。
比較した結果は、true(正しい)またはfalse(正しくない)のどちらかになります。
| 演算子 | 意味 | 例 |
|---|---|---|
== | 左右の値が等しい | 10 == 10 |
!= | 左右の値が等しくない | 10 != 5 |
> | 左の値が大きい | 10 > 5 |
< | 左の値が小さい | 10 < 5 |
>= | 左の値が右以上 | 10 >= 10 |
<= | 左の値が右以下 | 10 <= 10 |
実際に値を比べてみよう
新しくComparisonSampleクラスを作成してください。
作成できたら、次のコードを入力して実行してみましょう。
public class ComparisonSample {
public static void main(String[] args) {
int num1 = 10;
int num2 = 5;
System.out.println(num1 == num2);
System.out.println(num1 != num2);
System.out.println(num1 > num2);
System.out.println(num1 < num2);
}
}実行結果
false
true
true
false
例えば、
num1 > num2
では、「num1はnum2より大きいか?」を比較しています。
今回はnum1が10、num2が5なので、結果はtrueになります。
反対に、
num1 < num2
は「num1はnum2より小さいか?」という比較なので、結果はfalseになります。
「=」と「==」の違いに注意
「=」と「==」を間違えないようにしよう
=と==は見た目が似ていますが、意味が違います。
= は、変数に値を代入するときに使います。
int age = 20;
== は、左右の値が等しいか比較するときに使います。
age == 20
STEP2で扱った=は「代入」、今回の==は「比較」です。
ここはJavaを始めたばかりの頃に間違えやすいので、違いを覚えておきましょう。
論理演算子を使ってみよう
複数の条件を組み合わせたいときは、「論理演算子」を使います。
Javaでは、主に次の3つを使います。
| 演算子 | 意味 | 例 |
|---|---|---|
&& | 両方の条件が正しい | age >= 20 && age <= 29 |
|| | どちらかの条件が正しい | age < 20 || age >= 60 |
! | trueとfalseを反対にする | !isStudent |
&&は、左右の条件が両方ともtrueの場合に、結果がtrueになります。
例えば、
age >= 20 && age <= 29は、「ageが20以上」かつ「ageが29以下」という2つの条件を組み合わせています。
つまり、ageが20~29の場合にtrueになります。
実際に使ってみよう
新しくLogicalSampleクラスを作成してください。
作成できたら、次のコードを入力して実行してみましょう。
public class LogicalSample {
public static void main(String[] args) {
int age = 25;
System.out.println(age >= 20 && age <= 29);
System.out.println(age < 20 || age >= 60);
}
}実行結果
true
false
1つ目は、ageが20以上で、さらに29以下かを調べています。
今回はageが25なので、両方の条件を満たしてtrueになります。
2つ目は、ageが20未満、または60以上かを調べています。
25はどちらにも当てはまらないため、falseになります。
「&&」と「||」の違い
「両方」なのか「どちらか」なのかで考えよう
&&は、両方の条件を満たす必要があります。
||は、どちらか一方の条件を満たせばtrueになります。
迷ったときは、
&& → 「○○かつ○○」|| → 「○○または○○」
と考えると分かりやすくなります。
「!」を使ってみよう
!は、trueとfalseを反対にするときに使います。
例えば、次の変数があるとします。
boolean isStudent = true;この変数の前に!を付けると、
!isStudent結果はfalseになります。
trueならfalseに、falseならtrueに変わると覚えておきましょう。
演算子の優先順位
1つの式の中で複数の演算子を使った場合、計算される順番が決まっています。
例えば、次の計算を見てみましょう。
10 + 5 * 2この場合、左から順番に計算するわけではありません。
掛け算の*が先に計算されるため、
5 * 2 → 10
そのあと、
10 + 10 → 20
となります。
そのため、計算結果は20です。
計算する順番を変えたい場合
先に足し算をしたい場合は、( )を使います。
(10 + 5) * 2( )の中が先に計算されるため、
10 + 5 → 15
そのあと、
15 * 2 → 30
となります。
計算結果は30です。
実際に確認してみよう
新しくPrioritySampleクラスを作成してください。
作成できたら、次のコードを入力して実行してみましょう。
public class PrioritySample {
public static void main(String[] args) {
System.out.println(10 + 5 * 2);
System.out.println((10 + 5) * 2);
}
}実行結果
20
30
同じ数字と演算子を使っていても、( )を付ける場所によって計算結果が変わることが確認できます。
計算する順番に迷ったら「( )」を使おう
演算子にはそれぞれ優先順位がありますが、最初からすべて覚える必要はありません。
まずは、
( )の中を先に計算する*/%は、+-より先に計算する
この2つを覚えておきましょう。
複雑な式では、( )を使って計算する順番を分かりやすくすると、コードも読みやすくなります。
よくある間違い
演算子は記号が似ているものも多いため、書き間違えると意図した結果にならなかったり、エラーになったりします。
よくある間違いを確認しておきましょう。
「=」と「==」を間違える
=と==は役割が違います。
⚠ 間違えやすいポイント
= → 値を代入する
== → 左右の値が等しいか比較する
例えば、変数に20を代入する場合は、
int age = 20;
値が20と等しいか調べる場合は、
age == 20
と書きます。
int同士の割り算
int同士で割り算をすると、小数部分は切り捨てられます。
10 / 3
この結果は3.333...ではなく、3になります。
小数部分まで扱いたい場合は、doubleなどを使います。
10.0 / 3.0
「&&」と「||」を間違える
複数の条件を組み合わせるときは、どちらを使うのか確認しましょう。
&& → 両方の条件を満たすとtrue
|| → どちらかの条件を満たすとtrue
&&は「かつ」、||は「または」と考えると分かりやすくなります。
掛け算・割り算の記号を間違える
Javaでは、普段の計算で使う「×」や「÷」は使用しません。
掛け算 → *
割り算 → /
例えば、10×5を計算する場合は、
計算する順番を間違える
複数の演算子を使う場合は、計算される順番にも注意が必要です。
10 + 5 * 2
この結果は30ではなく20です。
先に足し算をしたい場合は、
(10 + 5) * 2
のように( )を使います。
STEP3のまとめ
このSTEPでは、計算や値の比較などに使う「演算子」について学びました。
最後に、今回のポイントを振り返っておきましょう。
+-*/%を使って計算できるint同士の割り算では、小数部分が切り捨てられる+=や-=を使うと、計算と代入をまとめて書ける++で1増やし、--で1減らすことができる==!=><>=<=を使って値を比較できる- 比較した結果は
trueまたはfalseになる &&は「かつ」、||は「または」を表す!を使うとtrueとfalseを反対にできる- 演算子には計算される順番があり、
( )を使うと順番を分かりやすく指定できる
演算子は、このあとのプログラムでも何度も登場します。
特に、値を比較する==や>、<などは、次のSTEPで学ぶ「条件分岐」でさっそく使います。

STEP3クリア!
演算子は種類が多いけど、全部を一度に覚えなくても大丈夫だよ。
実際に使いながら少しずつ慣れていこう♪
次のSTEPへ
ここまでに、計算に使う演算子だけでなく、
score >= 80のように、値を比較する演算子も登場しました。
では、この比較結果を使って、
「80点以上なら合格と表示する」
「80点未満なら不合格と表示する」
といったように、条件によって処理を変えるにはどうすればよいでしょうか?
次のSTEPでは、if文を使って条件によって実行する処理を変える方法を学びます。
