MENU

制御文(条件分岐) [if, else, else if, switch] 

はじめに

みなさんは日々の生活の中でいくども選択に迫られたことがあるかと思います。 もしあのときあの人に想いを告げていれば、なんて。そんなタラレバを1度や2度は経験しているかもしれません。 
今回はそんなタラレバな生活が制御構文の学習に役立つことでしょう! 

前回の復習 

前回は、演算子にはどのようなものがあるのか学びましたね。 

1. 算術演算子 

2. 代入演算子 

3. 比較演算子 

4. 論理演算子 

これらの演算子は、 if文の条件式として記述することが可能です。 
一つ例を上げると、以下のようになります。

if文に条件を与えるときは演算子を記述することが多いです。念頭において、本課題を進行していきましょう! 

Step1: 概念を知る 

制御構文は一言で言うと、プログラムを制御する文のことです。 
「分岐」と「繰返し」の2つに分類でき、
「分岐」には、if文とswitch文の2つの構文、
「繰返し」には、 for文とwhile文、 do-while文の3つの構文が存在します。 (※ 繰返しに関しては次章で解説します。)

以下より、if文、switch文に分けて解説していきます。 

Step2-1:【分岐の制御1】if文 

if文は、括弧の中の条件によって処理の流れを分岐させます。 
以下の文では、括弧の中の条件式の判定結果が true (真) の場合のみ、{} の中に記述されている処理が実行されます。 
条件式の判定結果が false (偽)の場合、{} の中の処理は実行されません。 

Step2-2: else文 

else文は、「それ以外」の場合に実行する処理を記述します。 
つまり、if文の条件式の判定結果が false だった場合に、 else文の { } 内の処理が実行されます。 

Step2-3: else if文 

else-if文は、「それ以外」で更に別の条件を判定する場合に使用します。 
つまり、if文の条件式の判定結果が false だった場合に、 else-if文の条件式の判定が行われます。 
そして、else-if文の条件式の判定結果が true だった場合に、 else-if文の {} 内の処理が実行されます。 

Step2-4: if, else, else if文 (組み合わせ) 

if文、 else if文、 else文を組み合わせると、以下のようになります。 

例題【if文を使ったプログラム例】 

下のプログラムでは、飲酒可能かどうかの判定をしてます。 もし20歳以上だった場合は「酒が飲めるぞ!」と表示します。 もし19歳だった場合は 「あと1年で酒が飲める!!」と表示します。 
それ以外(18歳以下だった場合) は 「まだまだ酒は飲めない・・・」と 表示するプログラムです。 
今回は old 変数に25 (25歳)を代入しています。 

今回のif文の条件(old >= 20 )は、 

という条件を省略した書き方です。 ※ && については Step2-5: 複数条件の分岐の論理演算子の項目で説明しております。 

【実行結果】 

【if文を使ったプログラム例(文字列の比較)】 

下のプログラムでは、文字列の比較をしています。もし国名がAmericaだった場合は 「アメリカ合衆国」と表示します。 
もし国名がJapanだった場合は「日本」と表示します。それ以外は「その他」 と表示するプログラムです
今回は Stringクラスの変数に America を代入しています。 ※Stringクラスの比較の場合、 == ではなく equals を使用します。 

【実行結果】 

Step2-5: 複数条件の分岐 

条件文を複数にしたいときもあります。 例えば、年齢が25歳未満で学生であれば、学割パックが使えます、としましょう。 

複数条件を指定する場合には論理演算子を使用します。 

&&、 || が代表的です。| の記号は馴染みがないかもしれませんが、 Shift + ¥ で出せます (設定を変更していなければ)。
それでは、年齢が25歳未満で学生であれば、 学割パックが使えます、という条件分岐を書いてみます。 

&& を使用することで、 両方の条件を満たしていなければ 「正しい」と判断しません。 逆に || を使用することで、どちらか片方だけでも満たしていれば「正しい」と判断します。
実際に試して確認してみてください。 

Step2-6: else if 

さて、年齢が25歳未満で学生であれば、 学割パックが使えますが、 学生でなくても25歳未満であれば、若者応援割引が使えるとします。 
この場合、下記のように続けてかくことができます。

【実行結果】 

この else if はいくつでも書くことができます。もし全ての条件に当てはまらなかったときの処理を記述する場合は else を使用します。

Step3: 【分岐の制御2】switch文 

switch文は、括弧内の式によって処理の流れを分岐します。 
ひとつの式の結果から多方向に分岐する、 多分岐処理で使用します。 
主な特徴、記述方法は以下のとおりです。 

  1. 複数の case という選択肢を記述し分岐させる
  2. 各々の case の最後に break文を記述することで、処理中の case を終了して switch文から抜ける 
  3. どの case選択肢にも当てはまらない場合は、 default を記述することで、 if文の else と同等の機能を持たせる 

以下に実際の書き方を提示します。 

switch文の分岐には数値や文字が用いられることが多いですが、ここでは数値で分岐させているプログラム例を以下に示します。 

例題 【switch文を使ったプログラム例】 

【実行結果】

補足
式及び値に文字列型が使用できます。 

【実行結果】 

課題

提出ファイル 

  • Task1_6.java 
  • Task1_6.class(Task1_6.classファイルがない方はTask1_6.javaファイルのみ提出してください。) 

java_curriculum/1-6/Task1_6.java に課題があります。 以下の添付画像のようにコンソールへ出力されるよう課題を実施し提出してください。 
※windowsの方で漢字が表示されない場合は、ローマ字で記述してください。 
※画像は成功パターンです。 値を変更し、エラーパターンも試してみましょう。 

提出方法については、導入研修で実施した、 研修課題提出方法の通りにお願いします。 

目次