if – else if – else文
6.4 if – else if – else文
前項では「もし○○○ならば、×××する。そうでなければ△△△する」という条件分岐を解説しましたが、「そうでなければ△△△する」の部分にさらに条件が追加され、「もし○○○ならば×××する。そうでなくもし□□□ならば◇◇◇する。どちらでもなければ△△△する」というような、さらに複数の条件がある場合は、if – else if – else文を使います。
6.4.1 if else-if -else文の基本構文
if-else if(エルスイフ)-else文の基本構文は下記のようになります。
書式:if-else if-else基本構文
図 6.4.1は、if-else if-else文をフローチャートにしたものです。
図 6.4.1 f-else if-else基本構文の処理フロー
◉ポイント
・ 3つ以上の条件に応じた処理を行う場合はif-else if-else文を使う。
6.4.2 複数条件式で数値の大小を比較するプログラム
キーボードからの入力値に応じて、if-else if-else文の各ブロック内の処理を確認します。
① ソース・フォルダー :myproj_super_intro/src
② パッケージ :jp.co.f1.superintro.ch06
③ 名前 :IfElseIfStatement
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる
➢ IfElseIfStatement.java
package jp.co.f1.superintro.ch06; import java.util.Scanner; public class IfElseIfStatement { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = 5; System.out.print("数値を入力 > "); int num2 = sc.nextInt(); if(num2 > num1){ System.out.println(num1+"より"+num2+"の方が大きいです。"); }else if(num2 < num1){ System.out.println(num1+"より"+num2+"の方が小さいです。"); }else{ System.out.println("num1とnum2の数値は同じです。"); } } }
実行結果
解説
6行目では、キーボード入力を行う準備を行っています。
8行目で、if – else if -else文で利用するint型の変数num1を宣言し、値5を初期化(代入)しています。
10、11行目で画面に文字列を表示し、キーボードから数値入力を促しています。(入力値は変数num2に代入)
13~19行目はif-else if-else文の範囲になります。まず13行目のif文で変数num1の値5よりも入力されたnum2の方が大きいかどうかを判断し、num2の方が大きければ14行目の処理が実行されます。13行目の条件を満たさない場合次の15行目のelse if文の判定を行い、今度は逆にnum1よりもnum2の値が小さいかどうかを判断し、num2の方が小さければ16行目の処理が実行されます。最後にelseブロックは、13、15行目の条件を両方満たさない場合に実行されます。入力された「5」はこのケース該当するので、18行目の処理が実行されます。
このサンプルプログラムのフローチャートを図 6.4.2に示します。