반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for문과while문, 그리고 while문의 변형인 do-while문이 있다.
for문과 while문은 구저와 기능이 유사하지만 반복횟수를 알고 있을 때에는 for문을, 그렇지 않을 때는 while문을 사용하면 된다.
for문의 구조는 아래와같다.
for(int i = 0; i < 5; i++) {
반복 실행할 코드;
}
괄호 안의 의미는 변수 i를 선언하고 그 i가 5이하일때면 계속 반복한다. 마지막 i++는 '반복 실행할 코드'가 모두 실행되고 변수 i에 1을 더해준다.
따라서 반복 실행할 코드가 5번 실행되고 마지막 코드 실행 후 i가 5가되면 더이상 i < 5는 성립하지 않아 반복이 중단되는 구조이다.
for문은 아래와 같이 '초기화', '조건식', '증감식', '블럭{}', 모두 4부분으로 이루어져 있고 조건식이 참인 동안에 들럭 내의 문장들을 반복한다.
for (초기화;조건식;증감식) {
// 조건이 참일때 수행
}
수행순서는 아래와같다.
for문의 초기화와 증감식은 2개이상 작성할 수 있다. 아래와 같은 방법으로 필요시에 사용하면 된다.
for (int i=1, j=1; i < 5; i++, j--) {
//수행될 코드
}
아래와 같이 초기화식, 조건식, 증감식을 모두 비워 놓으면 무한으로 돌아간다 = while(true)
for(;;) {
반복할 코드
}
for문에 비해while문은 구조가 간단하다. if문처럼 조건식과 블럭{}만으로만 이루어져 있는데 초기화나 증감식이 따로없이 조건식이 참인경우 계속 반복하기 때문에 무한반복에 주의해야 한다.
while (조건식) {
// 조건식이 참인동안 반복될 문장
}
do-while문은 while문의 변형으로 기본적인 구조는 while문과 같으나 조건식과 블럭{}의 순서를 바꿔놓은 것이다. 그래서while문과 반대로 블럭{}을 먼저 수행한 후에 조건식을 평가한다. 따라서 최소한 1번은 블럭을 수행한다는 뜻이다.
do {
// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.(처음 한 번은 무조건 실행)
} while (조건식); // ← 끝에 ';'을 잊지 않도록 주의
그리 많이 쓰이지는 않는다.
break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 완전히 벗어날 수 없다. 이럴 때에는 반복문에 이름을 부여한 후 break 문뒤에 해당 이름을 적으면 한번에 모두 빠져나올 수 있다.
※continue문도 된다.
Loop1 : while(true) {
while(true) {
while(ture) {
break Loop1; //한번에 모든 while문 벗어나기
}
}
}
원래였으면 break나 coutinue가 많이 들어갔을 것이다.