중첩 while 루프(nested while loop)는 두 개의 while 루프가 서로 포함된 구조를 말합니다. 바깥쪽 루프(외부 루프)가 먼저 조건을 검사하고, 그 조건이 참(true)일 때 안쪽 루프(내부 루프)로 진입하게 됩니다.
기본 구조
루프 1 (외부 루프)
while (a<25) {
}루프 2 (루프 1 내부에 위치)
while (b<45){
}위와 같이 외부 루프 안에 내부 루프를 배치하면 중첩 while 루프가 완성됩니다. 아래는 실제 동작하는 전체 예제 코드입니다.
예제 코드
using System;
namespace Program {
class Demo {
public static void Main(string[] args) {
int a=20;
while (a<25) {
int b=40;
while (b<45) {
Console.Write("({0},{1}) ", a, b);
b++;
}
a++;
Console.WriteLine();
}
}
}
}실행 결과
(20,40) (20,41) (20,42) (20,43) (20,44) (21,40) (21,41) (21,42) (21,43) (21,44) (22,40) (22,41) (22,42) (22,43) (22,44) (23,40) (23,41) (23,42) (23,43) (23,44) (24,40) (24,41) (24,42) (24,43) (24,44)
동작 원리
변수 a는 20으로 초기화되어 외부 루프의 조건 a<25를 검사합니다. 조건이 참이면 내부 변수 b가 40으로 초기화되고, 내부 루프가 b<45 조건을 만족하는 동안 반복됩니다.
내부 루프가 한 번 완전히 실행될 때마다 a 값이 1씩 증가하며 줄바꿈이 출력됩니다. 이 과정은 a가 25가 될 때까지 반복되므로, 총 5행 × 5열 형태의 좌표 쌍이 화면에 출력됩니다.