자바는 반복 연산을 프로그래밍 할 수 있도록 다음 3가지 종류의 반복문을 제공한다.
for 문은 처음부터 반복 횟수를 알 수 있는 경우에 사용하고 while 문과 do-while 문은 반복 횟수를 알 수 없고 조건에 따라 반복이 계속되거나 중단되는 경우에 이용한다. while 문은 반복 조건을 처음부터 따지는 경우에 사용하고 do-while 문은 반복 조건을 나중에 따지는 경우에 적합하다.
for 문의 구성과 실행 과정은 다음과 같고, 번호는 for 문의 실행 순서이다.

for 문에서 초기문은 주로 조건식에서 사용하는 변수를 초기화한다. 초기문의 특징을 나열하면 다음과 같다.
조건식에는 논리형 변수나 논리 연산을 사용한다. 조건식의 결과가 true이면 반복이 계속되며 false이면 for 문을 벗어난다. 조건식은 for 문의 작업 문장을 수행하기 전에 검사되므로 조건식이 처음부터 false이면 바로 반복문을 벗어난다.
for (i=0; i<10; i++) { // i가 0~9까지 10번 반복
System.out.print(i) // 0에서 9까지 출력
}
다음과 같이 조건식에 true가 있거나 비어 있으면 무한 반복된다.
for (초기문; true; 반복 후 작업) { // 무한 반복
.............
}
for (초기문; ; 반복 후 작업) { // 조건식이 비어 있으면 무한 반복
.............
}
for 문의 작업문이 실행된 후 '반복 후 작업문'이 실행된다.
for (i=0; i<10; i+=2) { // i가 0,2,4,6,8로 변하면서 5번 반복
.............
}
한 번 반복할 때마다 i가 2씩 증가(i+=2)하므로 i 값이 0, 2, 4, 6, 8로 변하면서 총 5번 반복한다.
작업문은 for문이 반복되는 동안 반복 실행된다. 작업문이 하나의 문장인 경우 중괄호가 필요없지만 여러 개의 문장으로 구성되는 경우 반드시 중괄호로 묶어야 한다.
for (i=0; i<10; i++) {
System.out.print(i);
}
for (i=0; i<10; i++)
System.out.print(i);
위 문장은 중괄호로 묶어 작성한 것이고 아래는 작업문이 하나의 문장이므로 중괄호를 생략해서 작성한 것이다.
다음과 같이 변수 i를 for 문 블록 내에서만 사용되는 지역 변수로 선언하여 사용할 수 있다. 이 때 변수 i는 for 문 밖에서는 사용할 수 없다.
for (int i=0; i<10; i++) { // 변수 i는 for 문 밖에서 사용 불가
System.out.print(i);
}
while 문은 아래 그림과 같이 구성되며 번호는 실행 순서이다.

while 문은 반복 횟수를 알 수 없는 경우에 적합핟. while 문의 조건식은 for 문의 경우와 동일하며, true인 동안 작업문의 실행을 반복하고, false가 되면 while 문을 벗어난다. for 문과 달리 while 문에 조건식이 없으면 컴파일 오류가 발생한다.
while 문을 사용하는 경우 조건식에 사용되는 변수를 while 문 실행 전에 초기화하는 것을 잊지 말아야 한다. 그리고 반복이 진행되면서 조건식이 false가 되어 반복문을 빠져 나올 수 있도록 설계되어야 한다. 그렇지 않으면 무한 반복에 빠지게 된다.
0부터 9까지 출력하는 것을 while 문을 사용하면 아래와 같이 작성할 수 있다.
i = 0;
while (i<10) {
System.out.print(i);
i ++;
}
while 문에서 if문을 이용하는 방법
while ((n%5 == 0) || (n<0)) { ... }while (true) { if (n%5 == 0) break; if (n<0) break; ... }위 코드는 while 문에 조건식을 이용하는 경우이고 아래 코드는 while 문의 조건식은 true로 하고 if 문으로 벗어나는 조건을 만드는 경우이다.
do-while 문의 모양과 실행 과정은 아래 그림과 같고 번호는 실행 순서이다.

do-while 문의 조건식은 while 문과 동일하며 조건식이 없으면 컴파일 오류가 발생한다. 다른 반복문과 달리 do-while 문은 작업문 실행 후 조건식을 검사하므로 작업문이 최초 한 번은 반드시 실행된다.
do-while 문에서도 조건식에 사용되는 변수는 do-while 문 실행 이전에 반드시 초기화가 이루어져야 하며, 무한 반복에 빠지지 않기 위해 반복이 진행되는 동안 조건식을 false로 만들 수 있도록 설계가 되어야 한다.
0부터 9까지 출력하는 것을 do-while 문을 사용하여 작성하면 아래와 같다.
i = 0;
do {
System.out.print(i);
i ++;
} while(i<10);
반복문 내에 continue 문이나 break 문을 이용하면 반복의 흐름을 바꾸거나 반복에서 벗어나게 할 수 있다. break 문은 현재 반복문을 벗어나게 하고 continue 문은 즉시 다음 반복으로 넘어가게 한다.
continue 문은 반복문을 빠져나가지 않으면서 즉시 다음 반복으로 넘어가고자 할 때 사용된다.
아래 그림은 각 반복문에서 continue 문에 의해 실행 경로가 변경되는 것을 보여준다. for 문에서 continue 문을 만나면 '반복 후 작업'으로 분기하고, while 문이나 do-while 문에서는 조건식을 검사하는 과정으로 분기한다.

break 문은 하나의 반복문을 즉시 벗어날 때 사용한다.
break 문이 실행되면 현재의 반복문을 벗어나 실행이 계속된다. break 문은 하나의 반복문만 벗어나기 때문에 중첩 반복의 경우 안쪽 반복문에서 break 문이 실행되면 안쪽 반복문만 벗어나며 바깥 쪽 반복문 내에서 실행이 유지된다. 아래 그림은 break 문에 의해 실행 경로가 바뀌는 것을 보여준다.
