프로그래밍에서 반복문은 특정 작업을 반복해서 수행할 때 유용하게 사용된다. 반복문은 주어진 조건이 참(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문을 탈출하게 된다.
'Programming Language > Java' 카테고리의 다른 글
[Java/개념] 데이터 타입 - 배열 타입(Array type) (0) | 2024.10.10 |
---|---|
[Java/개념] 데이터 타입 - 기본 타입(Primitive type)과 참조 타입(Reference type) (3) | 2024.10.10 |
[Java/개념] 조건문 (if ~ else / switch) (0) | 2024.10.08 |
[Java/개념] 타입 변환 (Type Conversion) (0) | 2024.10.07 |
[Java/개념] 자바 연산자 (Operators) (0) | 2024.10.07 |