
Java超|4章のまとめ
演算子と型のルールがつながると、Javaの式は「なんとなく」ではなく「理由を持って」読めるようになる。4章は、計算・代入・型変換を見抜くためのJava戦士の基礎修行。
4章では、Javaで計算や代入を行うために欠かせない 式・演算子・型変換 について学んできました。
最初は、足し算や掛け算のような基本的な計算から始まりました。
そこから、変数を使った計算、入力値を使った処理、インクリメント・デクリメント、複合代入演算子、演算子の優先順位、型変換、キャスト、異なる型どうしの演算へと進んできました。
一つひとつを見ると、細かいルールがたくさん出てきたように感じるかもしれません。
けれど、4章で学んだ内容はすべて、次の大きなテーマにつながっています。
| 4章の大きなテーマ | 内容 |
|---|---|
| 式をどう読むか | どの部分が評価されて値になるのかを読む |
| 演算子をどう読むか | +、=、++、+= などの意味を判断する |
| 値がどう変わるか | 変数の値が計算や代入でどう更新されるかを追う |
| 型がどう関わるか | int と double など、型によって結果が変わることを理解する |
| 評価順をどう見るか | 優先順位、結合規則、丸かっこの働きを読む |
ドラゴンボール風にたとえるなら、4章は Java戦士が演算技と型変換技を身につける基礎修行 です。
演算子は、戦士が使う技の型です。
オペランドは、その技に使うエネルギーや対象です。
式は、技を発動するための構えです。
型変換は、戦闘力の扱い方を整数モードから精密モードへ切り替えるような動きです。
どの技を先に出すのか。
どの型で力を扱うのか。
結果をどのカプセルへ記録するのか。
これらが分かると、Javaの式をずっと落ち着いて読めるようになります。
演算子はオペランドと組み合わせて式を作る
4章の出発点は、式と演算子 でした。
Javaでは、値や変数に対して計算や代入などの処理を行うために、演算子を使います。
たとえば、次のような式があります。
1 + 2この場合、+ が演算子です。
1 と 2 がオペランドです。
| 要素 | 意味 | 例 |
|---|---|---|
| 演算子 | 計算や代入などを行う記号 | +、-、*、/、= |
| オペランド | 演算の対象になる値や変数 | 1、2、num |
| 式 | 評価されると値になるもの | 1 + 2、num + 5 |
式は、ただ記号が並んでいるだけではありません。
Javaがその式を評価すると、結果として値が得られます。
たとえば、1 + 2 は評価されると 3 になります。
1 + 2
評価後の値は 3 です。
ドラゴンボール風にたとえるなら、演算子は 技の型 です。
オペランドは 技に使う気の材料 です。
1 + 2 は、1 と 2 という2つの気を、+ の技で合成し、3 という結果を生み出す流れです。
| Java | ドラゴンボール風のイメージ |
|---|---|
| 1 | 1つ目の気 |
| + | 気を合成する技 |
| 2 | 2つ目の気 |
| 3 | 技を発動した結果 |
この考え方が分かると、Javaの式は単なる記号の並びではなく、値が生まれる流れ として読めるようになります。
変数を使うと式は実践的になる
式では、数値を直接書くだけでなく、変数も使えます。
たとえば、num1 と num2 という変数がある場合、その2つの値を使って合計を求められます。
num1 + num2
この式では、num1 という名前そのものと、num2 という名前そのものを足しているわけではありません。
Javaは、num1 と num2 の中に入っている値を取り出して計算します。
| 式の考え方 | 内容 |
|---|---|
| num1 + num2 | num1 と num2 の値を足す |
| sum = num1 + num2 | 足した結果を sum に代入する |
| num = num + 1 | num の現在値に 1 を足して更新する |
変数を使えるようになると、プログラムは一気に実践的になります。
決まった数値だけを計算するのではなく、変数に入っている値に応じて結果を変えられるからです。
たとえば、次のような処理は、変数を使った演算が土台になります。
| 処理 | 変数を使う理由 |
|---|---|
| 合計を求める | 複数の値を足して保存するため |
| 回数を数える | 現在の回数を更新するため |
| 残り数を減らす | 使った分だけ値を変えるため |
| 点数を更新する | 追加点を反映するため |
| スコアを表示する | 変数の現在値を出力するため |
ドラゴンボール風にたとえるなら、変数は 戦士が持っている現在の戦闘力カプセル です。
修行すれば戦闘力が増えます。
攻撃を受ければ体力が減ります。
アイテムを使えば残り数が減ります。
このように、状態の変化をJavaの中で表すために、変数と式が使われます。
入力値を使うと結果が変わるプログラムになる
4章では、キーボードから入力した値を使って計算する考え方も学びました。
入力値を使うと、実行するたびに結果が変わるプログラムを作れます。
| 手順 | 内容 |
|---|---|
| 1 | キーボードから値を入力する |
| 2 | 入力値を変数に入れる |
| 3 | その変数を式で使う |
| 4 | 計算結果を表示する |
これは、とても大きな一歩です。
コードに直接書いた値だけを使う場合、結果は毎回同じになります。
しかし、入力値を変数に入れて式で使うと、使う人の入力によって結果が変わります。
つまり、Javaのプログラムが 固定された処理 から 状況に応じて動く処理 へ変わります。
ドラゴンボール風に言えば、司令室がその場で届いた戦闘データを受け取り、それに応じて作戦や技の威力を変えるようなものです。
たとえば、敵の戦闘力が毎回違うなら、計算結果も変わります。
修行回数が毎回違うなら、合計値も変わります。
入力値を使うことで、Javaのプログラムは現場の状況に合わせて動けるようになります。
図:4章で学んだ内容の全体像

この図が示していること
この図は、4章で学んだ内容が「式」を中心につながっていることを示しています。
演算子とオペランド、変数を使った計算、入力値を使った計算、インクリメント・デクリメント、複合代入演算子、優先順位、型変換、キャストは、それぞれ別々の知識に見えるかもしれません。
しかし、どれもJavaの式を正しく読み書きするために必要な考え方です。
式は、評価されると値になります。
その式の中で、どの演算子が使われているのか、どの値や変数がオペランドなのか、どの順番で評価されるのか、どの型として扱われるのかを確認することで、Javaの処理を理由を持って読めるようになります。
4章の内容は、単なる記号の暗記ではなく、Javaの処理を正しく理解するための土台です。
インクリメント・デクリメント演算子で1ずつ増減できる
4章では、インクリメント演算子とデクリメント演算子も学びました。
| 演算子 | 意味 |
|---|---|
| ++ | 値を 1 増やす |
| -- | 値を 1 減らす |
たとえば、count++ は、count の値を1増やす処理です。
これは、次の考え方と同じです。
| 短い書き方 | 通常の考え方 |
|---|---|
| count++ | count = count + 1 |
| count-- | count = count - 1 |
インクリメントとデクリメントは、回数を数えたり、残り数を減らしたり、繰り返し処理で変数を更新したりするときによく使います。
ドラゴンボール風にたとえるなら、count++ は修行回数を1回増やす記録技です。
count-- は残りエネルギー札を1枚減らす消費技です。
| Javaの処理 | ドラゴンボール風のイメージ |
|---|---|
| count++ | 修行回数を1増やす |
| hp-- | 体力を1減らす |
| itemCount-- | 補給カプセルを1つ使う |
| turn++ | 戦闘ターンを1進める |
前置と後置の違い
インクリメントとデクリメントでは、前置と後置の違いも大切でした。
| 書き方 | 意味 |
|---|---|
| ++a | 先に 1 増やしてから使う |
| a++ | 使ってから 1 増やす |
| --a | 先に 1 減らしてから使う |
| a-- | 使ってから 1 減らす |
単独で使う場合は、前置でも後置でも最終的な値は同じです。
count++;
++count;どちらも count を1増やします。
しかし、代入や他の式と組み合わせると、結果が変わることがあります。
result = count++;この場合は、count の現在値を result に入れてから、count を1増やします。
result = ++count;この場合は、count を先に1増やしてから、その値を result に入れます。
ドラゴンボール風にたとえるなら、前置は 先に気を高めてから技を出す 流れです。
後置は 今の気で技を出してから、あとで気が高まる 流れです。
| 種類 | 技の流れ |
|---|---|
| 前置 | 先に状態を変えてから使う |
| 後置 | 今の状態を使ってから変える |
この違いは、繰り返し処理や代入式を読むときにとても重要になります。
複合代入演算子を使うと処理を簡潔に書ける
4章では、= だけでなく、+= や -= などの複合代入演算子も学びました。
複合代入演算子は、演算と代入をまとめて書ける便利な演算子です。
| 複合代入演算子 | 通常の書き方 | 意味 |
|---|---|---|
| a += b | a = a + b | a に b を足して代入する |
| a -= b | a = a - b | a から b を引いて代入する |
| a *= b | a = a * b | a に b を掛けて代入する |
| a /= b | a = a / b | a を b で割って代入する |
| a %= b | a = a % b | a を b で割った余りを代入する |
たとえば、sum += score は、sum に score を足して、sum を更新するという意味です。
sum += score;これは、次の書き方と同じ考え方です。
sum = sum + score;複合代入演算子を使うと、コードが短くなるだけではありません。
この変数を更新している という意図も伝わりやすくなります。
ドラゴンボール風に言えば、sum += score は、これまでの総合修行点に新しい修行成果を加えて、総合修行点カプセルを更新するようなものです。
| 処理 | ドラゴンボール風のイメージ |
|---|---|
| total += score | 修行成果を総合点に加える |
| hp -= damage | ダメージ分だけ体力を減らす |
| power *= 2 | 戦闘力を2倍に高める |
| energy /= 2 | エネルギーを半分に分ける |
| turn %= 3 | 3ターン周期の位置を求める |
複合代入演算子は、値を少しずつ育てたり、消費したり、調整したりする処理でよく使います。
演算子には優先順位がある
4章の中でも特に大切だったのが、演算子の優先順位です。
Javaでは、式に複数の演算子がある場合、必ずしも左から順番に計算されるわけではありません。
たとえば、次の式を考えます。
3 + 2 * 5この式では、* のほうが + より優先順位が高いため、先に 2 * 5 が計算されます。
| 式 | 先に計算される部分 | 結果 |
|---|---|---|
| 3 + 2 * 5 | 2 * 5 | 13 |
| (3 + 2) * 5 | 3 + 2 | 25 |
3 + 2 * 5 は、先に 2 * 5 が 10 になります。
そのあと、3 + 10 が計算されます。
結果は 13 です。
一方、(3 + 2) * 5 では、丸かっこの中が先に計算されます。
そのため、3 + 2 が 5 になり、5 * 5 で結果は 25 になります。
ドラゴンボール風にたとえるなら、優先順位は 技の発動順 です。
通常は、掛け算や割り算のような強い計算技が、足し算や引き算より先に発動します。
丸かっこは、この技を先に発動せよ という司令官の明確な指示です。
文字列連結では丸かっこが大切になる
演算子の優先順位でつまずきやすいのが、文字列連結と数値計算が混ざる場合です。
たとえば、次のような出力を考えます。
"1+2は " + 1 + 2 + " です。"この場合、先頭が文字列なので、+ は文字列連結として働きます。
さらに + は左結合なので、左から順番につながっていきます。
| 評価の流れ | 結果 |
|---|---|
| "1+2は " + 1 | "1+2は 1" |
| "1+2は 1" + 2 | "1+2は 12" |
| "1+2は 12" + " です。" | "1+2は 12 です。" |
そのため、表示は 1+2は 12 です。 になります。
もし 1 + 2 を先に計算したいなら、丸かっこを使います。
"1+2は " + (1 + 2) + " です。"この場合は、丸かっこの中が先に計算されるため、結果は 3 になります。
| 書き方 | 表示される考え方 |
|---|---|
| "1+2は " + 1 + 2 | 文字列として 1 と 2 が連結される |
| "1+2は " + (1 + 2) | 1 + 2 を先に計算する |
文字列と数値が混ざるときは、計算したい部分を丸かっこで囲むと安全です。
ドラゴンボール風に言えば、文字列連結の流れに計算技が巻き込まれないように、丸かっこの結界で先に発動させるイメージです。
図:演算子の優先順位と文字列連結の注意点

この図が示していること
この図は、演算子の優先順位と文字列連結で注意すべき点を示しています。
左側では、3 + 2 * 5 の評価順序を表しています。
Javaでは * が + より優先されるため、2 * 5 が先に計算されます。
その結果、3 + 10 となり、最終的な結果は 13 になります。
右側では、文字列と数値を + でつなぐ場合の注意点を表しています。
"1+2は " + 1 + 2 のように先頭に文字列があると、+ は文字列連結として左から処理されます。
そのため、1 と 2 は足し算されず、12 のようにつながります。
一方、"1+2は " + (1 + 2) のように丸かっこを使うと、1 + 2 が先に計算され、結果は 3 になります。
この図は、Javaの式を読むときに、優先順位、結合規則、丸かっこの有無を確認することが大切だと示しています。
型が変わると値の扱われ方も変わる
4章の後半では、型変換とキャストを学びました。
Javaでは、値をどの型として扱うかがとても大切です。
たとえば、int型は整数を扱います。
double型は小数を含む数値を扱えます。
| 型 | 扱える値のイメージ |
|---|---|
| int | 整数 |
| double | 整数と小数 |
小さな型から大きな型へは、自動的に型変換されることがあります。
| 変換 | 特徴 |
|---|---|
| int → double | 自動で変換されることがある |
| double → int | そのままでは代入できないことがある |
| double → int のキャスト | 小数点以下が切り捨てられる |
たとえば、int型の 10 を double型に入れると、10.0 として扱われます。
これは、小さな型から大きな型への変換なので、Javaが自動で行える場合があります。
一方で、double型の 10.8 を int型に変換すると、10 になります。
小数点以下の .8 は切り捨てられます。
これは四捨五入ではありません。
| 元の値 | intへキャストした結果 |
|---|---|
| 10.8 | 10 |
| 3.9 | 3 |
| 7.1 | 7 |
このように、大きな型から小さな型へ変換すると、情報が失われることがあります。
そのため、Javaは勝手には変換せず、キャストによる明示的な変換を求めることがあります。
ドラゴンボール風にたとえるなら、double型は細かい気の量まで入る大型スカウターカプセルです。
int型は整数の戦闘力だけを記録する通常カプセルです。
大型スカウターカプセルの 10.8 という気を通常カプセルへ移すと、0.8 の細かい気は入りません。
だからJavaは、勝手にこぼすのではなく、キャストという明確な指示を求めます。
代入のときにも型変換が関わる
型変換は、演算のときだけでなく、代入のときにも関係します。
たとえば、int型の値を double型の変数に代入する場合、Javaは int を double に変換してくれます。
| 代入の例 | 起こること |
|---|---|
| int の値を double に代入 | int が double に変換される |
| double の値を int に代入 | そのままでは危ないためキャストが必要な場合がある |
代入は単に「値を入れるだけ」に見えます。
しかし、Javaでは代入先の型によって、値の扱われ方が変わります。
つまり、代入とは、値を移すだけでなく どの型の器に入れるのか を考える処理でもあります。
ドラゴンボール風に言えば、戦闘力を記録するとき、通常カプセルへ入れるのか、精密スカウターカプセルへ入れるのかを選ぶようなものです。
同じ値でも、どのカプセルへ入れるかによって、表現のされ方が変わります。
四則演算のときにも型変換が起こる
4章では、演算のときにも型変換が起こることを学びました。
たとえば、int型と double型を一緒に演算すると、int型の値が double型へ変換されてから計算されます。
| 演算 | 処理のされ方 |
|---|---|
| int + double | int が double に変換されてから計算 |
| int * double | int が double に変換されてから計算 |
| int / int | int型のまま計算 |
| double / int | int が double に変換されてから計算 |
ここで特に重要なのが、int / int の割り算です。
整数どうしの割り算では、結果も整数として計算されます。
そのため、小数部分は切り捨てられます。
| 式の型 | 結果の考え方 |
|---|---|
| int / int | 整数の結果になる |
| double / int | double にそろえて小数の結果になる |
| int / double | double にそろえて小数の結果になる |
たとえば、5 / 4 を int型どうしで計算すると、結果は 1 になります。
1.25 にはなりません。
小数を含む結果がほしい場合は、少なくとも一方を double型にする必要があります。
(double)5 / 4または、次のように小数の値を含めます。
5 / 4.0ドラゴンボール風にたとえるなら、int型どうしの戦いでは、整数単位でしか結果を出せません。
小数まで含めた細かい気の配分が必要なら、戦う前に double型の精密モードへ切り替える必要があります。
異なる型どうしの演算では大きい型へそろう
異なる型どうしで演算すると、Javaは基本的に、より大きな型へそろえてから計算します。
たとえば、int と double を一緒に計算する場合、int の値が double に変換されます。
| 式 | 計算時の扱い | 結果 |
|---|---|---|
| 3 * 2.5 | 3.0 * 2.5 | 7.5 |
| 7 / 2 | int / int | 3 |
| 7.0 / 2 | 7.0 / 2.0 | 3.5 |
| 7 / 2.0 | 7.0 / 2.0 | 3.5 |
この違いは、とても大切です。
数字だけを見ると、7 / 2 と 7.0 / 2 は似ています。
しかし、型が違うため結果が変わります。
| 見た目 | 型の見方 | 結果 |
|---|---|---|
| 7 / 2 | int / int | 3 |
| 7.0 / 2 | double / int | 3.5 |
| 7 / 2.0 | int / double | 3.5 |
Javaでは、数字そのものだけではなく、その数字がどの型として扱われているか が大切です。
図:型変換と演算結果の流れ

この図が示していること
この図は、異なる型どうしの演算と、同じ int型どうしの演算の違いを示しています。
左側では、int型の 3 と double型の 2.5 を演算しています。
この場合、int型の 3 が double型の 3.0 に変換され、3.0 * 2.5 として計算されます。
結果は 7.5 になります。
右側では、int型の 5 と int型の 4 を割り算しています。
この場合、int型どうしの演算なので、結果も整数として扱われます。
そのため、5 / 4 は 1.25 ではなく 1 になります。
小数部分の 0.25 は切り捨てられます。
この図は、Javaの演算結果が数字そのものだけでなく、演算に参加している値の型によって決まることを示しています。
小数を含む結果が必要な場合は、演算が始まる前に double型を含める必要があります。
4章で学んだ内容を整理する
4章で学んだ内容を整理すると、次のようになります。
| 学んだこと | 内容 |
|---|---|
| 式と演算子 | 演算子はオペランドと組み合わさって式を作る |
| 変数を使った演算 | 変数の値を使って計算や更新ができる |
| 入力値を使った計算 | 入力によって結果が変わるプログラムを作れる |
| インクリメント・デクリメント | 変数の値を 1 増やしたり 1 減らしたりできる |
| 前置と後置 | 先に増減するか、あとで増減するかが変わる |
| 複合代入演算子 | 演算と代入をまとめて簡潔に書ける |
| 演算子の優先順位 | どの演算が先に行われるかが決まっている |
| 丸かっこ | 評価の順番を明確に変えられる |
| 型変換 | 型が自動的に変わる場合がある |
| キャスト | 明示的に型を変換できる |
| 異なる型どうしの演算 | 大きい型にそろえてから演算される |
| 同じ型どうしの演算 | その型のまま計算されるため注意が必要な場合がある |
この表を見ると、4章の内容はかなり幅広く見えます。
しかし、すべて Javaの式を正しく理解する というテーマにつながっています。
Javaのコードは、見た目だけで判断すると間違えることがあります。
どの演算子が使われているのか。
どの順番で評価されるのか。
どの型として計算されるのか。
どの変数に代入されるのか。
これらを確認することで、Javaの式を理由を持って読めるようになります。
コードは見た目どおりに動くとは限らない
4章で大切だった考え方の1つは、コードは見た目どおりに動くとは限らないということです。
たとえば、次のような場面です。
| 見た目の印象 | 実際の動き |
|---|---|
| 3 + 2 * 5 は左から計算しそう | * が先なので 13 になる |
| "1+2は " + 1 + 2 は 3 になりそう | 文字列連結で 12 になる |
| double に代入すれば小数になりそう | int / int の結果は整数になる |
| double から int にそのまま入れられそう | 小数が失われる可能性があるのでキャストが必要 |
Javaは、決まったルールに従って式を評価します。
演算子の優先順位、結合規則、型変換、キャストのルールを知っていると、「なぜこの結果になるのか」を説明できるようになります。
ドラゴンボール風にたとえるなら、技の見た目だけで判断せず、どの技が先に発動するのか、どのエネルギー形態で扱われているのか を見ることが大切です。
同じ数字でも、int型で戦うのか、double型で戦うのかで結果は変わります。
同じ + でも、数値の足し算なのか、文字列連結なのかで結果は変わります。
これから先の学習につながる大切な土台
4章で学んだ内容は、この先のJava学習でも何度も出てきます。
たとえば、条件分岐では比較演算子や論理演算子を使います。
繰り返し処理では、インクリメント演算子や代入演算子がよく使われます。
配列やオブジェクトを扱うようになっても、式の評価や型の理解は欠かせません。
| 今後の学習内容 | 4章とのつながり |
|---|---|
| 条件分岐 | 比較演算子や論理演算子を使う |
| 繰り返し処理 | ++ や += をよく使う |
| 配列 | 添字の計算や更新で演算子を使う |
| メソッド | 引数や戻り値で型を意識する |
| オブジェクト指向 | 型の考え方がさらに重要になる |
4章は、単に計算の書き方を覚える章ではありません。
Javaのコードを正しく読み、意図どおりに書くための基礎を固める章です。
ドラゴンボール風に言えば、派手な必殺技へ進む前に、気の扱い方、技の発動順、エネルギーカプセルの種類、変換のタイミングを身につける修行です。
ここが安定すると、条件分岐や繰り返し処理も理解しやすくなります。
4章の内容を読むときの考え方
4章の知識を実際に使うときは、次のように考えると分かりやすくなります。
| 見るポイント | 確認すること |
|---|---|
| 演算子 | どんな処理をしているか |
| オペランド | 何に対して演算しているか |
| 優先順位 | どこが先に評価されるか |
| 丸かっこ | 評価順を変えているか |
| 型 | int なのか double なのか |
| 代入先 | 結果をどの型の変数に入れるか |
| キャスト | 明示的に型を変えているか |
この見方ができるようになると、複雑に見える式も少しずつ分解して読めます。
式を見たときに、いきなり全体を理解しようとする必要はありません。
次の順番で見ていくと、落ち着いて理解できます。
| 順番 | 見ること |
|---|---|
| 1 | どの演算子があるか |
| 2 | どの演算子が先に評価されるか |
| 3 | オペランドの型は何か |
| 4 | 結果はどの型になるか |
| 5 | どこに代入されるか |
Javaの式は、分解して見ると必ずルールに沿って動いています。
そのルールを知っていれば、結果をなんとなく予想するのではなく、理由を持って説明できます。
Javaの式を自信を持って読むために
4章で学んだことは、どれもJavaの基礎ですが、実際のコードを読むうえではとても重要です。
演算子は短い記号なので、意味をあいまいにしたまま読み飛ばしやすいです。
しかし、+、=、++、+=、/、キャストなどは、ほんの少し意味を取り違えるだけで、結果が変わることがあります。
特に意識したいのは、次の3つです。
| 大切な視点 | 内容 |
|---|---|
| 式は評価されて値になる | Javaは式をルールに従って処理する |
| 演算子には順番がある | 優先順位と結合規則を意識する |
| 型によって結果が変わる | int と double の違いを意識する |
ドラゴンボール風にたとえると、4章で学んだ内容は、Java戦士としての基礎鍛錬です。
技の順番、気の型、力の受け渡し方を理解することで、次の章から出てくる複雑な処理にも対応しやすくなります。
4章で身につけた 式を分解して読む力 は、この先の条件分岐、繰り返し、配列、メソッド、オブジェクト指向の学習でもしっかり役立ちます。
