본문 바로가기
Programming Language/Java

[Java/개념] 반복문 (for, while, do-while)

by woongii 2024. 10. 8.

프로그래밍에서 반복문은 특정 작업을 반복해서 수행할 때 유용하게 사용된다.  반복문은 주어진 조건이 참(true)일 때 계속해서 명령을 실행하고, 조건이 거짓(false)일 때 실행을 멈추는 구조이다. 주로 사용하는 반복문으로는 for문, while문, do-while문이 있으며, 이를 보조하는 continue문과 break문도 함께 사용된다.

 

  • for문: 반복 횟수가 명확할 때 사용
  • while문: 조건에 따라 반복, 조건이 거짓이면 실행되지 않음
  • do-while문: 최소 한 번은 실행되며 이후 조건을 평가
  • break문: 반복문을 즉시 종료
  • continue문: 반복문의 나머지 코드를 건너뛰고 다음 반복으로 넘어감
  • 레이블과 반복문: 레이블을 사용해 중첩된 반복문을 제어

 

 

1. for문

1) for문 기본 구조

for문은 반복 횟수가 정해진 경우에 가장 적합한 반복문이다. 반복할 횟수를 미리 알고 있을 때 사용하기 좋으며, 주로 카운터 변수를 이용해 실행된다.

for (초기화; 조건식; 증감식) { 
// 반복할 문장 
}

 

  • 초기화 : 반복에 사용할 변수를 초기화하며, 처음 한 번만 실행된다.
  • 조건식 : 조건이 참일 동안 반복문을 실행한다.
  • 증감식 : 각 반복 이후에 실행되며, 변수의 값을 증감한다.
for (int i = 0; i < 5; i++) { 
	System.out.println(i); 
}

 

2) 중첩 for문

반복문 안에 또 다른 반복문을 넣을 수 있다.

for (int i = 0; i < 3; i++) { 
	for (int j = 0; j < 3; j++) { 
		System.out.println("i: " + i + ", j: " + j); 
	} 
}

 

3) 향상된 for문 (Enhanced for statement)

배열이나 컬렉션 요소를 순차적으로 반복할 때 사용하는 더 간결한 형태이다.

int[] numbers = {1, 2, 3, 4, 5}; 
for (int number : numbers) { 
	System.out.println(number); 
}

 

2. while문

while문은 조건이 참일 때만 반복이 실행되는 구조다. 조건식을 먼저 평가하기 때문에 조건이 처음부터 거짓이면 한 번도 실행되지 않는다.

while (조건식) { 
// 반복할 문장 
}
 
int i = 0; while (i < 5) { 
	System.out.println(i); i++; 
}

 

    ㆍ무한 루프 : 조건식이 항상 참일 경우 반복문이 끝나지 않는 무한 루프에 빠질 수 있다.

while (true) { 
	System.out.println("무한 반복"); 
	break; // 무한 루프 탈출 
}

 

3. do-while문

do-while문은 조건 검사를 나중에 하기 때문에 반복문이 최소한 한 번은 실행된다. 사용 빈도는 낮지만, 사용자의 입력을 반복적으로 받을 때 유용하다.

do { 
// 반복할 문장 
} while (조건식);

 

int i = 0; 
do { 
	System.out.println(i); 
	i++; 
} while (i < 5);

4. break문

break문은 현재 실행 중인 반복문을 즉시 종료시키는 명령어다. 특히 무한 루프에서 특정 조건을 만나 반복을 중단할 때 자주 사용된다.

 

while (true) { 
 if (조건) { 
    break; // 반복문 탈출 
 } 
}
 
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // i가 5일 때 반복문 종료
    }
    System.out.println(i);
}

 

5. continue문

continue문은 반복문 내에서 남은 코드를 실행하지 않고 다음 반복으로 넘어가는 명령어다. 특정 조건을 제외하고자 할 때 유용하게 사용된다.

 

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        continue; // i가 5일 때 이후 코드를 건너뛰고 다음 반복으로
    }
    System.out.println(i);
}

 

int i = 0; while (i < 10) { 
	i++; if (i % 2 == 0) { 
		continue; // 짝수일 때 출력 생략 
	} 
	System.out.println(i); 
}

6. 반복문 탈출 (outer 사용)

반복문에 레이블(이름)을 붙여주면, 여러 중첩 반복문에서 특정 반복문을 한 번에 빠져나갈 수 있다. break나 continue와 함께 사용되어 특정 레이블에 대한 제어를 수행할 수 있다.

outer: for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i == 1 && j == 1) {
            break outer; // outer라는 레이블이 붙은 반복문을 탈출
        }
        System.out.println("i: " + i + ", j: " + j);
    }
}

 

위 예시에서 i == 1이고 j == 1일 때, outer 레이블이 붙은 바깥 for문을 탈출하게 된다.