👌

【Java】if文をネストさせる

2024/01/22に公開

練習問題を行う中で、条件式をさらに細かくしたい時に必要なため、忘れないようにメモしておきます。

if文をネストさせるとは

if文の中に別のif文を書くことです。ネストされたif文は、外側のif文がtrueの場合に、内側のif文が実行されます。ネストされたif文を使用することで、より複雑な条件分岐を実現できます。

if文をネストする利点

  1. 条件の組み合わせ
    複数の条件を組み合わせて柔軟な条件を作成できます。例えば、AかつBかつCの条件が必要な場合、外側の if 文がAを検証し、内側の if 文がBを検証するようにすることができます。
if (A) {
    if (B) {
        if (C) {
            // AかつBかつCの場合の処理
        }
    }
}
  1. 条件の範囲指定
    条件の範囲を特定できます。例えば、外側の条件が成り立った場合にのみ、内側の条件を検証するように設定できます。
if (外側の条件) {
    // 何らかの処理

    if (内側の条件) {
        // 内側の条件が成り立った場合の処理
    }
}
  1. 階層化された条件の表現
    条件が階層的に表現されます。これにより、コードの可読性が向上し、条件がどのように組み合わさっているかがわかりやすくなります。
  2. 特定の条件のみに対する処理
    外側の条件が成り立っている場合にのみ内側の条件を検証し、内側の条件が成り立った場合に対する処理を実行することができます。これにより、特定の条件が満たされた場合のみ処理を実行できます。

例題

例として下記のような問題の場合

要素数20の配列を宣言し、要素に0から5ずつ加算して代入させる。
[0]~[10]の値の奇数のみカンマ区切りで、[11]~[19]の値は偶数をカンマ区切りで表示させる。

解答のソースコード

public class Test {

	public static void main(String[] args) {
		// 要素数20の配列を宣言
		int[] num = new int[20];
		
		// 配列の要素に0から5ずつ加算して代入
		for (int i =0; i < num.length; i++) {
			num[i] = i * 5;
		}
		
		// [0]~[10]の奇数の値をカンマ区切りで表示
		System.out.print("奇数:");
		for (int i = 0; i <= 10; i++) {
			if (num[i] % 2 != 0) {
				System.out.print(num[i]);
				if (i < 10-1) {
					System.out.print(",");
				}
			}
		}
		System.out.println();
		
		// [11]~[19]の偶数の値をカンマ区切りで表示
		System.out.print("偶数:");
		for (int i = 11; i <= 19; i++) {
			if (num[i] % 2 == 0) {
				System.out.print(num[i]);
				if (i < 19-1) {
					System.out.print(",");
				}
			}
		}

	}

}

出力結果

奇数:5,15,25,35,45
偶数:60,70,80,90

解説

奇数・偶数の表示の際にネストを使用

 奇数の場合
System.out.print("奇数:");
for (int i = 0; i <= 10; i++) {
    if (num[i] % 2 == 1) {
        System.out.print(num[i]);
        if (i < 10 - 1) {
            System.out.print(",");
        }
    }
}
  • 0から10までのnumの要素に対して、それが奇数かどうかを判定します。
  • 奇数であればその値を表示し、最後の要素でない場合はカンマ,も表示します。

参考

https://dream-java-seminar.com/java-super-intro-contents/jsi_ch06/jsi_0605/

Discussion