Responsive Advertisement

Java Nested Loops: 중첩 반복문 활용

Java의 Nested Loops는 하나의 반복문 안에 또 다른 반복문을 포함하는 구조로, 반복문 내에서 추가적인 반복 작업을 수행할 수 있게 합니다. 이 구조는 2차원 배열 처리, 특정 패턴 출력, 복잡한 계산 등 다양한 상황에서 유용하게 활용됩니다. 이번 글에서는 Nested Loops의 문법과 다양한 활용 예제를 살펴보겠습니다.

1. Nested Loops 기본 구조

Nested Loops는 다음과 같은 형식을 가집니다:

for (초기화식1; 조건식1; 증감식1) {
    for (초기화식2; 조건식2; 증감식2) {
        // 중첩된 반복문 내부 코드
    }
}

안쪽 루프(inner loop)는 바깥쪽 루프(outer loop)가 한 번 실행될 때마다 여러 번 반복됩니다.

예제: 중첩 반복문 기본

public class NestedLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 2; j++) {
                System.out.println("i: " + i + ", j: " + j);
            }
        }
    }
}

출력 결과:

i: 1, j: 1  
i: 1, j: 2  
i: 2, j: 1  
i: 2, j: 2  
i: 3, j: 1  
i: 3, j: 2  

위 코드는 바깥쪽 루프 i가 1부터 3까지 반복되며, 안쪽 루프 ji의 각 값에 대해 1부터 2까지 반복됩니다.

2. Nested Loops 활용 예제

2.1 구구단 출력

Nested Loops를 사용하여 구구단을 출력할 수 있습니다.

public class MultiplicationTable {
    public static void main(String[] args) {
        for (int i = 2; i <= 9; i++) {
            System.out.println("== " + i + "단 ==");
            for (int j = 1; j <= 9; j++) {
                System.out.println(i + " x " + j + " = " + (i * j));
            }
        }
    }
}

출력 결과:

== 2단 ==  
2 x 1 = 2  
2 x 2 = 4  
...  
== 9단 ==  
9 x 8 = 72  
9 x 9 = 81  

2.2 별 패턴 출력

Nested Loops는 별(*)이나 다른 문자로 특정 패턴을 출력하는 데 자주 사용됩니다.

public class StarPattern {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

출력 결과:

*  
**  
***  
****  
*****  

이 코드는 바깥쪽 루프 i의 값에 따라 안쪽 루프가 실행되어, 한 줄에 i개의 별을 출력합니다.

2.3 2차원 배열 출력

Nested Loops를 사용하면 2차원 배열의 데이터를 효율적으로 처리할 수 있습니다.

public class ArrayExample {
    public static void main(String[] args) {
        int[][] numbers = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        for (int i = 0; i < numbers.length; i++) {
            for (int j = 0; j < numbers[i].length; j++) {
                System.out.print(numbers[i][j] + " ");
            }
            System.out.println();
        }
    }
}

출력 결과:

1 2 3  
4 5 6  
7 8 9  

이 코드는 2차원 배열의 각 요소를 반복적으로 출력합니다.

3. 중첩 While Loop

Nested Loops는 while 문에서도 동일하게 적용할 수 있습니다.

예제: 중첩 While Loop로 패턴 출력

public class NestedWhileExample {
    public static void main(String[] args) {
        int i = 1;

        while (i <= 5) {
            int j = 1;
            while (j <= i) {
                System.out.print("#");
                j++;
            }
            System.out.println();
            i++;
        }
    }
}

출력 결과:

#  
##  
###  
####  
#####  

4. Nested Loops 사용 시 주의사항

  • 루프 종료 조건: 루프 종료 조건이 잘못 설정되면 무한 루프가 발생할 수 있습니다.
  • 가독성 유지: 중첩 루프가 많아질수록 코드가 복잡해지므로 주석을 활용해 가독성을 높이세요.
  • 효율성: 중첩 루프는 성능에 영향을 줄 수 있으므로 필요한 경우에만 사용하세요.

5. 결론

Java의 Nested Loops는 반복 작업을 효율적으로 처리할 수 있는 강력한 도구입니다. 구구단 출력, 패턴 생성, 2차원 배열 처리 등 다양한 실용적인 작업에 활용할 수 있습니다. 이번 글에서 소개한 예제를 바탕으로 Nested Loops를 익히고, 프로젝트에 적극 활용해 보세요!

댓글 쓰기