Java入門|4章のまとめ

演算子と型のルールがわかると、Javaの式はもっと正確に、もっと自信を持って書けるようになる。

この4章では、Javaで計算や比較、代入などの処理を書くために欠かせない、式・演算子・型変換について学んできました。ここまで進んできたことで、ただ数値を表示するだけではなく、変数を使って計算したり、入力値に応じて結果を変えたり、型の違いを意識して正しく演算したりできるようになってきましたね。

演算子は、Javaのコードの中で本当にたくさん使われます。四則演算はもちろん、値を増やしたり減らしたり、計算結果を変数に代入したり、型の違いを調整したりするときにも登場します。そのため、この章の内容は一見細かく見えても、実はこれから先のJava学習の土台になるとても大事な部分です。

また、この章では「コードは見た目どおりに動くとは限らない」ということも学びました。演算子には優先順位があり、型によって計算結果が変わり、代入のしかたによって値の扱われ方も変わります。こうしたルールを知っていると、コードを読む力も書く力も大きく伸びていきます。

ここでは、4章で学んだ内容をひとつずつ振り返りながら、意味やつながりをしっかり整理していきましょう。

演算子はオペランドと組み合わせて式を作る

まず、この章の出発点になったのが演算子でした。

Javaでは、たとえば

1 + 2

のように、演算子とオペランドを組み合わせて式を作ります。
この場合、+ が演算子で、1 と 2 がオペランドです。

式は、ただ並んでいるだけの記号ではなく、評価されると値になるものでした。
たとえば 1 + 2 という式は、評価されると 3 になります。

この考え方はとても大切です。なぜなら、Javaのコードの中では、数値だけでなく変数名そのものも式になりますし、さらにそれらを組み合わせてもっと大きな式を作ることができるからです。

表で整理すると、次のようになります。

要素意味
演算子計算や比較などを行う記号+, -, *, /, =
オペランド演算の対象になる値や変数1, 2, num
評価されると値になるもの1 + 2, num + 5

この基本がわかるようになると、Javaの一行一行を「何を計算して、どんな値を得ているのか」という視点で読めるようになります。

変数を使うと、式はもっと実践的になる

4章では、定数だけでなく変数をオペランドとして使えることも学びました。

たとえば、

sum = num1 + num2;

のような式では、num1 と num2 に入っている値を使って計算し、その結果を sum に代入します。

また、

num = num + 1;

のように、自分自身の値を使って新しい値に更新する書き方も出てきました。

この考え方は、実際のプログラムではとても重要です。なぜなら、合計を求める、回数を数える、在庫を増減する、といった処理は、ほとんどすべて変数を使った演算だからです。

つまり、4章では、ただの計算式ではなく、プログラムらしい処理を書くための入り口を学んだともいえます。

入力値を使うことで、結果が変わるプログラムになる

さらに、キーボードから入力した値を使って計算することで、実行するたびに結果が変わるプログラムも学びました。

これはとても大きな一歩です。最初のうちは、コードに直接書かれた数値だけを使っていたので、実行結果も毎回同じでした。けれど、入力値を変数に読み込んで式に使えば、ユーザーが入力した内容に応じて結果が変わるようになります。

この流れを簡単に表すと、次のようになります。

手順内容
1キーボードから値を入力する
2入力値を変数に入れる
3その変数を式で使う
4計算結果を表示する

この考え方が身につくと、Javaのプログラムは「固定された表示」から、「状況に応じて動く処理」へと一気に広がっていきます。

インクリメント・デクリメント演算子で1ずつ増減できる

4章では、インクリメント演算子デクリメント演算子も学びました。

  • ++ は値を 1 増やす
  • -- は値を 1 減らす

という意味でしたね。

たとえば、

count++;

は、

count = count + 1;

と同じ意味になります。

同じように、

count--;

は、

count = count - 1;

と同じ意味です。

この演算子はとても短く書けるので、回数を数えたり、繰り返し処理の変数を増減させたりするときによく使われます。

また、前置と後置の違いも重要でした。

書き方意味
++a先に増やしてから使う
a++使ってから増やす
--a先に減らしてから使う
a--使ってから減らす

単独で使うときはあまり違いが目立ちませんが、代入と組み合わせたときには結果が変わることがある、という点もこの章の大切なポイントでした。

複合的な代入演算子を使うと処理を簡潔に書ける

4章では、= だけでなく、+= や -= などの複合的な代入演算子も学びました。

たとえば、

a += b;

は、

a = a + b;

と同じ意味でした。

同じように、次のような書き方もありました。

複合代入演算子通常の書き方
a += ba = a + b
a -= ba = a - b
a *= ba = a * b
a /= ba = a / b
a %= ba = a % b

これらは、演算と代入をまとめて書けるので、とても便利です。特に、合計を少しずつ足していく処理や、残りの値を減らしていく処理ではよく使われます。

たとえば、

sum += score;

と書けば、「sum に score を足して更新する」という意図がすぐに伝わります。
このように、複合代入演算子はコードを短くするだけでなく、読みやすくする役割もあるといえます。

演算子には優先順位がある

4章の中でも、とても大切だったのが演算子の優先順位です。

たとえば、

3 + 2 * 5

という式では、左から順番に計算するのではなく、* のほうが + より優先順位が高いため、先に 2 * 5 が計算されます。
その結果、

3 + 10

となり、最終的に 13 になります。

また、

(3 + 2) * 5

のように丸かっこを使うと、丸かっこの中が先に評価されるので、結果は 25 になります。

この違いは、Javaの式を正しく読むうえでとても重要です。

さらに、文字列連結との組み合わせでは、優先順位の理解が欠かせませんでした。

たとえば、

System.out.println("1+2は " + 1 + 2 + " です。");

では、左から文字列として連結されてしまうため、

1+2は 12 です。

となります。

一方で、

System.out.println("1+2は " + (1 + 2) + " です。");

なら、丸かっこの中が先に計算されるため、

1+2は 3 です。

となります。

このように、演算子の優先順位を意識しないと、見た目は正しそうでも意図と違う結果になることがあるのです。

図で見る4章の全体像

4章で学んだ内容は、それぞれ別々の話に見えて、実はつながっています。図にするとその関係が見えやすくなります。

この図では、4章の中心にあるのが「式と演算子」であり、その周りにインクリメント・デクリメント、代入演算子、優先順位、型変換、キャスト、異なる型の演算といった内容がつながっていることを示しています。

つまり、4章の内容は個別の知識の集まりではなく、Javaで式を正しく書き、正しく読むためのひとまとまりの知識なのです。

型が変わると、値の扱われ方も変わる

4章の後半では、型変換キャストも学びました。ここはJavaらしい大切なポイントです。

まず、小さなサイズの型から大きなサイズの型へは、自動的に型変換されることがありました。

たとえば、

int num = 10;
double d = num;

のような場合です。
このとき、int 型の 10 は double 型の 10.0 に変換されて代入されます。

一方で、大きなサイズの型から小さなサイズの型へ代入するときは、そのままではできないことがありました。そこで使うのがキャスト演算子です。

double d = 10.8;
int num = (int)d;

このように書くと、double 型の値を int 型へ変換できます。
ただし、小数点以下は切り捨てられて 10 になります。

ここで重要なのは、小さなサイズの型に変換すると、値の一部が失われることがあるという点です。

表で整理すると、次のようになります。

変換の方向特徴
小さい型 → 大きい型int → double自動で変換されることがある
大きい型 → 小さい型double → intキャストが必要
小さい型への変換10.8 → 10一部の値が失われることがある

このルールを知らないと、なぜコンパイルエラーになるのか、なぜ小数が消えたのかがわかりにくくなります。4章では、そうした疑問の理由が見えるようになりました。

代入のときにも型が変わることがある

この章では、型変換は演算のときだけでなく、代入のときにも起こることを学びました。

たとえば、

int num = 5;
double d = num;

では、代入するときに int が double に変換されます。

このように、Javaでは「代入」という一見シンプルな操作の中にも、型のルールが関わっています。
代入は単なる値の受け渡しではなく、どの型の変数に入れるのかによって、変換が必要になることがあるのです。

四則演算などのときにも型が変換される

さらに、4章では演算のときにも型変換が起こることを学びました。

たとえば、

int a = 2;
double b = 3.5;
double c = a * b;

のような式では、int 型の a が double 型に変換されてから掛け算が行われます。
その結果、式全体の値も double 型になります。

一方で、同じ型どうしで演算すると、その型のまま計算されることも学びました。特に印象的だったのは、整数どうしの割り算です。

int a = 5;
int b = 4;
double d = a / b;

この場合、a と b はどちらも int 型なので、割り算の結果は int 型の 1 になります。
そのあとで double 型に代入されるので、最終的には 1.0 になります。

もし 1.25 を得たいなら、

double d = (double)a / (double)b;

のように、少なくとも一方を double 型に変換してから計算する必要がありました。

この内容はとても大切です。なぜなら、どの型で演算しているかによって、結果そのものが変わるからです。

4章で学んだ内容を整理しよう

ここまでの内容を、ポイントごとに整理すると次のようになります。

学んだこと内容
式と演算子演算子はオペランドと組み合わさって式を作る
変数を使った演算変数の値を使って計算や更新ができる
入力値を使った計算入力によって結果が変わるプログラムが作れる
インクリメント・デクリメント変数の値を1増やしたり1減らしたりできる
複合代入演算子演算と代入をまとめて簡潔に書ける
演算子の優先順位どの演算が先に行われるかは決まっている
型変換型が自動的に変わる場合がある
キャスト明示的に型を変換できる
異なる型どうしの演算大きい型にそろえられてから演算される
同じ型どうしの演算その型のまま計算されるため注意が必要な場合がある

この表を見ると、4章で学んだことはとても幅広いですが、どれも「式をどう書くか」「値がどう計算されるか」というテーマにつながっていることがわかります。

これから先の学習につながる大切な土台

この章では、すべての演算子を詳しく扱ったわけではありません。けれど、この章で学んだ考え方は、この先に出てくるさまざまなコードの理解につながっていきます。

たとえば、条件分岐では比較演算子や論理演算子が使われますし、繰り返し処理ではインクリメント演算子や代入演算子が頻繁に登場します。配列やオブジェクトを扱うようになっても、式の評価や優先順位の理解は欠かせません。

つまり、4章は単に「計算の書き方を覚える章」ではなく、Javaの処理を読み解くための基礎を固める章だったといえます。

わからない演算子や、思ったように動かない式に出会ったときは、この章の内容に立ち返ると、とても役立ちます。演算子は記号が短いぶん、意味をあいまいにしたまま読み進めてしまいやすいところがあります。でも、ここでしっかり整理しておけば、今後のコード理解がずっと楽になります。

4章で学んだことを土台にしていけば、Javaのコードはもっと自然に、もっと自信を持って読めるようになっていきます。