if文のネスト

今までif文について見てきましたがif文の中にさらにif文を書いて、
少し複雑なif文を作成することができます。

このことをif文のネストといいます。

以下のような記述になります。

if 文のネストの記述の仕方


   if(条件式1){
if(条件式2){ 条件式2がtrueの場合の処理 else{ 条件式1がtrueで条件式2がfalseの場合 }else{ if(条件式3){ 条件式1がfalseで条件式3がtrueの場合 else{ 条件式1も条件式3もfalseの場合 }

このような記述になります。
それぞれif文の中にさらにif else文を else文の中にさらにif else文を記述して
ネストしています。

では、実際にサンプルプログラムを見ていきます。
これは、if文のネストを使って、20才以下なら親の承諾で結婚できるかどうか
20才以上なら親の承諾なしに結婚できるかどうかの判定しているサンプルです。

ためしにいろいろint 型の age boolean 型の true falseを置き換えて判定の結果の
違いを確認してください。

サンプルプログラム(Sample34.java)

class  Sample34{
    public static void main(String args[]){
    int age = 18;                  //年齢
    boolean ok = true;         //親の承諾を得ているかどうか判定
 
if(ok){
    if( age >=18){
    System.out.println("あなたは、18歳以上で親の承諾を得ているので
                             結婚できます");
     }else{
    System.out.println("親の承諾を得ていますが、まだ年齢が若いので
                             結婚はできません");
        }

}else{
if(age >= 20){ System.out.println("あなたは、親から反対されていますが20才以上なので 結婚できます"); }else{ System.out.println("あなたは、親から反対されている上にまだ若いので 結婚はできません");
} } } }


上記プログラムは
System.out.println("あなたは、18歳以上で親の承諾を得ているので
結婚できます");
など文字列が長くなりますのであえて2列に記述しています。
このとおり記述いたしますとエラーになりますので一度下のコピーを利用してプログラムを確認してください。
プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル実行します。

実行結果は以下のようになります。
もちろんint型とboolean型の値を変えてやれば実行結果も変わります。
プログラムの説明をすると、まず最初のif文では親からの承諾されているかどうかを
判定しています。
boolean ok= true のときは最初のif文の中の処理を、falseのときはelse文の中の
処理を、またそれぞれの中にまたif文があります。
それは、今度年齢 int age の値によって評価しています。
このように、ネストを使うことによりいろいろ分岐させることができます。
しかしここで、注意が必要になります。
それは、できるだけif文などたくさんあるとどうしてもプログラムが読みにくくなります。
したがってきちんとインデントして読みやすくしてやることを気をつけてください。

ページのトップへ戻る