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까지 반복되며, 안쪽 루프 j
는 i
의 각 값에 대해 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를 익히고, 프로젝트에 적극 활용해 보세요!
댓글 쓰기