if-else 文
6.3 if-else 文
前節では「もし○○○ならば、×××する」という単純な条件分岐を処理する「if 文」について解説しました。
本項ではそれを少し発展させ、「もし○○○ならば、×××する。そうでなければ△△△する」という条件分岐を処理する if-else(エルス)文について解説します。
6.3.1 if-else 文の基本構文
if – else 文の基本構文は下記のようになります。
書式:if-else 基本構文
この場合は、もし条件式が合っていたら、処理①を行い、合っていなければ処理②を行う、ということになります。
if-else 文の処理の流れをフローチャートにすると、図 6.3.1 のようになります。
図 6.3.1 : if-else 基本構文の処理フロー
ポイント・ 二者択一のような条件処理を行う場合、if-else 文を使います。
6.3.2 if-else 文の条件式が成立するプログラム
条件式の関係演算子「= =」が成立し、「if ブロック内」のメッセージが出力されることを確認します。
① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch6
③ 名前 :IfElseStatement1
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
➢ IfElseStatement1.java
package jp.co.f1.intro.ch6; public class IfElseStatement1 { public static void main(String[] args) { //比較用の値を管理するための変数 int a = 1; System.out.println("*****if 文の判定開始*****"); if(a==1){ System.out.println("変数 a と 1 は等しい。"); }else{ System.out.println("変数 a と 1 は等しくない。"); } System.out.println("*****if 文の判定終了*****"); } }
実行結果
解説
8 行目では、条件式で使用する int 型の変数 a を宣言し、値 1 を代入しています。
12 行目の if 文では、a が 1 と等しい場合、「変数 a と 1 は等しい。」というメッセージを出力し、等しくない場合は「変数 a と 1 は等しくない」というメッセージを出力する処理を実行する内容になっています。
変数「a」には 1 が代入されていますので、条件式「a==1」が成立し、13 行目の処理が実行されます。
この場合のフローチャートは図 6.3.2 のようになります。
図 6.3.2 : IfElseStatement1 のフローチャート
次の項で、今回のプログラムの条件が成立しなかった場合について見てみましょう。
6.3.3 if-else 文の条件式が成立しないプログラム
関係演算子「= =」で条件が成立せず、else ブロック内のメッセージが出力されることを確認します。
① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch6
③ 名前 :IfElseStatement2
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
➢ IfElseStatement2.java
package jp.co.f1.intro.ch6; public class IfElseStatement2 { public static void main(String[] args) { //比較用の値を管理するための変数 int a = 2; System.out.println("*****if 文の判定開始*****"); if(a==1){ System.out.println("変数 a と 1 は等しい。"); }else{ System.out.println("変数 a と 1 は等しくない。"); } System.out.println("*****if 文の判定終了*****"); } }
実行結果
解説
8 行目で int 型の変数 a を宣言し、2 を代入しています。
変数 a の値が 2 なので、12 行目の条件式「a==1」は「2 == 1」となり、条件が満たされません。そのため、13行目の処理は実行されず、15 行目の else 文の処理が実行されます。
この場合のフローチャートは図 6.3.3 のようになります。
図 6.3.3 : IfElseStatement2 のフローチャート