
프로그래밍에서는 같은 코드를 여러 번 실행해야 하는 경우가 많다.
예를 들어, 시험 점수 1부터 5까지를 출력하려면 같은 코드를 5번 작성해야 한다.
이런 불편함을 해결하기 위해 Java는 반복문(loop)을 제공한다.
Java에는 크게 세 가지 반복문이 있다.
while문은 조건이 참(true)일 동안 코드를 반복 실행한다.
while (조건식) {
// 반복 실행할 코드
}
예시: 점수를 1부터 5까지 출력하기
int score = 1;
while (score <= 5) {
System.out.println("점수: " + score);
score++;
}
출력:
점수: 1
점수: 2
점수: 3
점수: 4
점수: 5
조건이 거짓이 되면 반복문이 종료된다.
do-while문은 while문과 비슷하지만, 조건과 상관없이 최소 한 번은 실행된다.
do {
// 반복 실행할 코드
} while (조건식);
예시: 점수를 10에서 시작해서 5 이하일 때만 출력하기
int score = 10;
do {
System.out.println("점수: " + score);
score++;
} while (score <= 5);
출력:
점수: 10
조건은 거짓이었지만 한 번은 실행되었다.
반복문에서 흐름을 제어하기 위해 break와 continue를 사용할 수 있다.
break: 반복문을 즉시 종료한다. continue: 해당 반복을 건너뛰고 다음 반복으로 넘어간다. 예시: 1부터 시작해서 합계가 50을 넘으면 종료하기
int sum = 0;
int score = 1;
while (true) {
sum += score;
if (sum > 50) {
System.out.println("합계가 50을 넘음: score=" + score + " sum=" + sum);
break;
}
score++;
}
예시: 1부터 5까지 출력하되 3은 건너뛰기
for (int score = 1; score <= 5; score++) {
if (score == 3) {
continue;
}
System.out.println("점수: " + score);
}
출력:
점수: 1
점수: 2
점수: 4
점수: 5
for문은 반복 횟수가 정해져 있을 때 자주 사용된다.
for (초기식; 조건식; 증감식) {
// 반복 실행할 코드
}
예시: 1부터 5까지 점수 출력하기
for (int score = 1; score <= 5; score++) {
System.out.println("점수: " + score);
}
출력:
점수: 1
점수: 2
점수: 3
점수: 4
점수: 5
반복문 안에 또 다른 반복문을 넣을 수 있다. 이를 중첩 반복문이라고 한다.
예시: 성적표 출력하기 (학생 2명, 각 학생의 점수 3개)
for (int student = 1; student <= 2; student++) {
System.out.println("학생 " + student + " 성적:");
for (int score = 1; score <= 3; score++) {
System.out.println(" 점수 " + score);
}
}
출력:
학생 1 성적:
점수 1
점수 2
점수 3
학생 2 성적:
점수 1
점수 2
점수 3
while문
0이 될 때까지 합계를 구하는 경우 for문
즉, 조건 중심 반복은 while문, 횟수 중심 반복은 for문을 쓰는 것이 자연스럽다.