Java超|5章のまとめ

条件分岐を身につけると、Javaはただ進むだけのプログラムから、状況を見て判断するプログラムへ進化する。

5章では、Javaで「場合に応じて処理を変える」ための考え方を学んできました。

これまでのプログラムは、基本的に上から下へ順番に処理が進む流れが中心でした。これはプログラムの大切な基本です。
しかし、実際のプログラムでは、いつも同じ処理だけを実行すればよいとは限りません。

入力された値、点数、選ばれたメニュー、現在の状態、条件の組み合わせによって、実行する処理を変えたい場面がたくさんあります。

そこで必要になるのが、条件分岐です。

条件分岐を使うと、

やりたいことJavaでの考え方
この条件ならこの処理をするif文
そうでなければ別の処理をするif~else文
複数の条件を順番に調べるif~else if~else文
値ごとに処理を切り替えるswitch文
複数条件を組み合わせる論理演算子
条件によって値を選ぶ条件演算子 ?:

というように、プログラムに判断力を持たせられます。

ドラゴンボール風にたとえると、5章は「戦場で状況を見極めて、進む道や使う技を選ぶ訓練」です。

敵の強さ、任務札の番号、戦士の体力、仲間の有無、作戦の許可状態などを見て、次の行動を決める。
Javaの条件分岐も同じように、条件を見て処理の流れを選びます。

この章で学んだことの全体像

5章で学んだ内容は、それぞれ別々の文法に見えます。

しかし、実際にはすべて「条件に応じて処理を変える」というテーマでつながっています。

学んだ内容役割
関係演算子条件を作る
if文条件が true のときだけ処理する
if~else文true と false の2通りに分ける
if~else if~else文複数の条件を順番に調べる
switch文式の値に応じて処理を切り替える
論理演算子条件を組み合わせて複雑な条件を作る
条件演算子 ?:簡単な条件に応じて値を選ぶ

大きな流れとしては、まず条件を作る方法を学び、その条件を使って処理を分け、さらに複数条件や値による分岐まで広げていきました。

ドラゴンボール風にたとえると、次のようになります。

Javaの内容ドラゴンボール風のイメージ
関係演算子状況を判定するスカウター
if文条件がそろったときだけ発動する技
if~else文攻撃か防御かを選ぶ分岐ゲート
if~else if~else文作戦札を上から順に確認する流れ
switch文任務番号ごとの指令表
論理演算子複数の判断札を組み合わせる技
条件演算子 ?:A札かB札を選ぶ短い判断札

条件分岐は、Javaの処理を「ただ順番に動くもの」から「状況を判断して動くもの」へ変えるための重要な土台です。

関係演算子で条件を作れるようになった

5章の出発点は、条件とは何かを理解することでした。

Javaにおける条件とは、評価されると true または false になる式です。

たとえば、次のような条件があります。

条件式意味
score >= 80score が80以上である
age < 20age が20未満である
num == 1num が1と等しい
value != 5value が5ではない

これらの式は、状況によって true または false になります。

評価結果意味
true条件が成り立っている
false条件が成り立っていない

この true と false の考え方は、条件分岐の土台です。

たとえば、score >= 80 が true なら合格の処理へ進む。
false なら別の処理へ進む。

このように、条件の結果を使ってプログラムの流れを変えます。

関係演算子を学んだことで、Javaに「この条件は成り立つか」を判断させられるようになりました。

ドラゴンボール風にたとえると、関係演算子は「敵との距離は近いか」「体力は十分か」「任務札の番号は一致しているか」を調べるスカウター判定です。

判定結果が true なら次の行動へ進み、false なら別の判断に移ります。

if文で条件が true のときだけ処理できるようになった

関係演算子で条件を作れるようになったあと、その条件を使って処理を動かす基本として学んだのが if文 です。

if文は、条件が true のときだけ処理を実行します。

条件の結果if文の処理
true実行される
false実行されない

if文は、条件分岐のいちばん基本となる構文です。

たとえば、score が80以上なら合格メッセージを表示する、という考え方は if文 で表せます。

if(score >= 80){
    System.out.println("合格です。");
}

ここで大切なのは、false のときにプログラム全体が止まるわけではないことです。

条件に当てはまらなければ、その if文 の対象となる処理を飛ばして、次の処理へ進みます。

ドラゴンボール風にたとえると、if文は「条件がそろったときだけ発動する技」です。

敵が近いなら近接技を出す。
体力が十分なら必殺技を使う。
条件がそろっていなければ、その技は出さずに次の行動へ移ります。

if文のバリエーションで処理の幅が広がった

if文だけでは、条件が true のときだけ処理を行い、false のときは何もしない形になります。

しかし、実際には false のときにも別の処理をしたいことがあります。
さらに、3通り以上の分岐が必要になることもあります。

そこで学んだのが、if~else文 と if~else if~else文 です。

if~else文

if~else文を使うと、条件が true の場合と false の場合で、2通りの処理を分けられます。

条件の結果実行される処理
trueif 側の処理
falseelse 側の処理

if文では、false のときは何もせず次へ進みました。
if~else文では、false のときの処理も書けます。

たとえば、合格なら合格メッセージ、不合格なら再挑戦メッセージのように、2つの状況に対応できます。

if(score >= 80){
    System.out.println("合格です。");
}
else{
    System.out.println("再挑戦しましょう。");
}

ドラゴンボール風にたとえると、if~else文は「条件が合えば攻める、合わなければ守る」という二者択一の型です。

敵に勝てる戦闘力なら攻撃ルート。
足りなければ防御ルート。

どちらの場合でも、何かしらの行動を選べます。

if~else if~else文

if~else if~else文を使うと、複数の条件を上から順番に調べられます。

特徴内容
複数条件を扱えるelse if を使って条件を増やせる
上から順に判定する最初の条件から順番に調べる
最初に true になった場所だけ実行されるその下の条件は調べられない
else は受け皿になるどの条件にも当てはまらない場合を扱う

たとえば、90点以上なら高評価、70点以上なら合格、それ以外なら復習、というような複数段階の判定に向いています。

if(score >= 90){
    System.out.println("高評価です。");
}
else if(score >= 70){
    System.out.println("合格です。");
}
else{
    System.out.println("復習しましょう。");
}

ここで特に大切なのは、条件の順番です。

上から順に調べるため、広い条件を先に書いてしまうと、その下にある細かい条件まで届かないことがあります。

たとえば、score >= 60 を先に書くと、score が90でもそこで true になり、score >= 80 の判定まで進みません。
そのため、点数の判定では、より厳しい条件を先に書くなど、順番を意識する必要があります。

ドラゴンボール風にたとえると、if~else if~else文は「戦場で状況を順番に確認し、最初に当てはまった指令だけを実行する流れ」です。

特別な敵か。
通常の敵か。
敵影なしか。

上から順に確認して、最初に合った指令へ進みます。

図:5章で学んだ条件分岐の全体像

この図が示していること

この図では、5章で学んだ内容が「条件分岐」を中心につながっていることを示しています。

関係演算子で条件を作り、その条件を if文 や if~else文 で使います。
分岐が増えたら if~else if~else文 を使い、値ごとの分岐なら switch文 が役立ちます。

さらに、論理演算子を使うと複数の条件を組み合わせられ、条件演算子 ?: を使うと簡単な値の選択を短く書けます。

ここから分かることは、5章の内容は個別の文法の集まりではなく、Javaの処理を状況に応じて変えるための一連の道具だということです。

switch文で分岐をすっきり書けるようになった

5章では、if文系とは別の分岐方法として switch文 も学びました。

switch文は、ある式の値に応じて処理を切り替えるための構文です。

特に、1つの変数の値をいくつかの候補に分けたいときに向いています。

switch文が向いている場面例
メニュー番号で分ける1なら飲み物、2なら食べ物
曜日番号で分ける1なら月曜日、2なら火曜日
選択文字で分けるAなら開始、Bなら終了
コード番号で分ける100なら成功、200なら警告

switch文では、case に一致した場所から処理が始まります。
どの case にも一致しない場合は、default を使って処理できます。

要素役割
switch分岐の基準になる式を指定する
case一致した値の処理を書く
defaultどの case にも一致しない場合の処理を書く
breakswitch文から抜ける

特に重要なのが break です。

break がないと、一致した case の下にある処理まで続けて実行されることがあります。
このため、初心者のうちは case ごとに break を書く意識を持つと安心です。

ドラゴンボール風にたとえると、switch文は「任務番号ごとの指令表」です。

case は指令の開始位置。
default はどの番号にも合わないときの通常案内。
break は「この指令はここで終了」という合図です。

番号が決まっていて、その値ごとに処理を分けたいとき、switch文はとても読みやすい形になります。

論理演算子で条件をもっと複雑にできるようになった

5章では、条件そのものを発展させる道具として、論理演算子も学びました。

論理演算子を使うと、複数の条件を組み合わせて、より細かい判断ができます。

演算子意味
&&左右が両方 true のとき true
||左右のどちらかが true なら true
!true と false を反転する

たとえば、点数が80以上で、しかも出席日数が20日以上なら条件を満たす、という判断では && を使えます。

大文字 A または小文字 a のどちらでも受け付けたい場合は || を使えます。

ある条件ではない場合を判定したいときは ! を使えます。

判断したいこと向いている演算子
両方の条件を満たしたい&&
どちらか一方を満たせばよい||
条件を反転したい!

論理演算子を使えるようになると、条件分岐がかなり実践的になります。

ドラゴンボール風にたとえると、&& は「体力が十分で、しかも敵が近いなら攻撃」、|| は「任務札がA、または特別許可札があるなら通過」、! は「その条件ではない場合を見る反転札」です。

条件を1つだけ見るのではなく、複数の条件を組み合わせて判断できるようになることで、プログラムの表現力が大きく広がります。

条件演算子 ?: で簡潔な書き方もできるようになった

5章の終わりでは、条件演算子 ?: も学びました。

条件演算子は、簡単な条件に応じて値を選ぶための演算子です。

基本の形は次の通りです。

条件 ? trueのときの値 : falseのときの値

たとえば、num が 1 なら A、そうでなければ B を選ぶような処理を1行で表せます。

条件の結果選ばれる値
truetrue のときの値
falsefalse のときの値

条件演算子は、if~else文を短く書ける場合があります。

ただし、何でも短くすればよいわけではありません。
処理が複雑なときは、if文のほうが読みやすいこともあります。

場面向いている書き方
条件によって値を1つ選ぶだけ条件演算子 ?:
複数の処理を実行するif文 系
読みやすさを優先したいif文 系

ドラゴンボール風にたとえると、条件演算子は「任務札の条件を見て、A札かB札を選ぶ短い判断」です。

大きな処理の分岐というより、値を選ぶための小さな分岐です。

図:条件分岐の使い分け

この図が示していること

この図では、5章で学んだ条件分岐の使い分けを示しています。

true のときだけ処理したいなら if文、true と false の2通りに分けたいなら if~else文、3通り以上に分けたいなら if~else if~else文が向いています。

1つの値ごとに処理を切り替えたい場合は switch文が便利です。
複数の条件を組み合わせたい場合は &&、||、! を使います。
簡単に値を選びたい場合は、条件演算子 ?: が役立ちます。

ここから分かることは、条件分岐には複数の書き方があり、目的に合わせて使い分けることが大切だということです。

それぞれの使い分けを整理する

5章で学んだ分岐の書き方を、使う場面ごとに整理すると次のようになります。

書き方向いている場面
if文条件が true のときだけ処理したい
if~else文true と false の2通りに分けたい
if~else if~else文3通り以上の条件分岐をしたい
switch文1つの式の値ごとに分岐したい
論理演算子条件を組み合わせたい
条件演算子 ?:簡単な値の選択を短く書きたい

このように整理すると、それぞれの役割がはっきり見えてきます。

大切なのは、すべてを同じ書き方で済ませようとしないことです。

たとえば、score >= 80 のような大小比較なら if文 系が自然です。
num が 1、2、3 のどれかを選ぶような値ごとの分岐なら switch文 が見やすいです。
条件によって A か B の値を選ぶだけなら、条件演算子 ?: が便利な場合があります。

場面に合った分岐の書き方を選ぶと、コードは読みやすくなります。

条件分岐が書けるようになると何が変わるのか

条件分岐を身につけると、Javaのプログラムは一気に実用的になります。

それまでは、上から下へ順番に処理を進めるだけでした。
しかし、条件分岐を使うことで、入力や状況に応じて動きを変えられるようになります。

できるようになること内容
入力値によって表示を変える入力された番号や文字に応じて案内を変える
状況に応じて別の処理を実行する条件に応じて処理を切り替える
複数の選択肢から処理を選ぶif~else if~else文や switch文を使う
条件を組み合わせて細かく判定する&&、
簡単な値の選択を短く書く?: を使う

これは、プログラムが「決まった流れをこなすもの」から、「状況を判断して動くもの」へ進化するということです。

ドラゴンボール風にたとえると、5章を学ぶ前のプログラムは、ただ一直線に進む戦士のようなものです。

5章を学んだあとは、敵の種類、任務札、仲間の状態、戦場の状況を見て、行動を切り替えられる戦士になります。

次の学習につながる大切な土台

5章で学んだ条件分岐は、この先のJava学習でも何度も出てきます。

特に、次に学ぶ繰り返し処理では、条件の考え方がとても重要になります。

たとえば、「条件が成り立っている間は処理を繰り返す」という考え方では、true と false の判断がそのまま使われます。

今後の学習5章とのつながり
繰り返し処理条件が true の間だけ繰り返す
配列添字や値を条件で判定する
メソッド条件に応じて戻り値や処理を変える
オブジェクト指向状態によって動作を変える
例外処理条件や状況に応じて安全に処理を進める

5章の内容は、この章だけで完結する知識ではありません。
これから先のJava学習を支える基礎です。

ドラゴンボール風にたとえると、条件分岐は戦士の基本判断力です。
技そのものが強くても、使うタイミングを判断できなければ力を活かせません。

Javaでも同じで、文法を覚えるだけでなく、「どの条件で、どの処理に進むのか」を読めることが大切です。

5章で身につけておきたいこと

5章を終える時点で、特に身につけておきたいことを整理します。

身につけたいこと内容
条件を読めることtrue と false を判断できる
条件を書けること関係演算子を正しく使える
分岐を使い分けられることif文系と switch文 の違いが分かる
条件を組み合わせられること&&、
簡潔に書けること?: の役割を理解している
処理の流れを追えることどの分岐が実行されるか判断できる

このあたりが整理できていれば、5章の内容はかなり身についています。

特に大切なのは、「条件が true か false かを見て、どの処理に進むのかを読む力」です。

条件分岐では、書き方を覚えるだけでなく、実行の流れを追えることが大切です。

条件分岐を読むときの考え方

条件分岐のコードを読むときは、次の順番で見ると分かりやすくなります。

順番見ること
1条件式は何か
2条件は true になるか false になるか
3true のときどの処理に進むか
4false のときどの処理に進むか
5複数条件なら上から順にどう判定されるか
6switch文ならどの case に一致するか
7論理演算子があれば条件を分解して読む

この見方ができるようになると、複雑に見える条件分岐も少しずつ整理して読めます。

ドラゴンボール風にたとえると、分岐を読むことは、戦場で状況を順番に確認することに似ています。

敵は近いか。
体力は残っているか。
任務札はどの番号か。
仲間はいるか。
どの条件に当てはまるか。

これを落ち着いて順番に確認すれば、どの処理が実行されるのか見えてきます。

図:条件分岐を読む流れ

この図が示していること

この図では、条件分岐のコードを読むときの基本的な流れを示しています。

まず条件式を確認し、その条件が true になるのか false になるのかを判断します。
そのうえで、true のときの処理、false のときの処理を確認します。

複数条件の場合は上から順に見て、switch文の場合はどの case に一致するかを探します。
論理演算子がある場合は、条件を1つずつ分けて読むと理解しやすくなります。

ここから分かることは、条件分岐を理解するには、文法を覚えるだけでなく、実行の流れを追う力が大切だということです。

Javaらしいプログラム作りの入口

5章で学んだ条件分岐は、Javaで実用的なプログラムを書くための大切な入口です。

条件を使えるようになると、プログラムはただ順番に動くだけではなくなります。
入力や状況に応じて反応できるようになります。

条件分岐を使う前条件分岐を使ったあと
上から下へ同じ処理を進める条件に応じて処理を変える
実行結果が固定されやすい入力や状態で結果が変わる
単純な流れになりやすい実用的な判断ができる
処理の選択肢が少ない複数の道を作れる

条件分岐を理解すると、Javaのプログラムはかなり自然な動きになります。

人が状況を見て判断するように、プログラムも条件を見て処理を選べるようになるからです。

ドラゴンボール風にたとえると、5章で学んだ内容は、戦士が戦場で判断するための基本の型です。

どの条件なら進むのか。
どの条件なら戻るのか。
どの番号ならどの指令を出すのか。
どの条件がそろえば技を使うのか。

この判断力が身につくと、Javaのプログラムはもっと柔軟に、もっと実用的に動かせるようになります。