반복문에는 크게 for문과 while문이 있다. if문 switch문과는 달리 for문과 while문은 서로 바꿀 수 있다.
1. for문
반복 횟수를 알고 있을 때 for문을 사용하자.
1) 실행 흐름
for문의 실행 순서는 다음과 같다.
for (초기화; 조건식; 증감식) {
// 문장...
}
(1) 반복문에 사용할 변수를 초기화한다. 둘 이상의 같은 타입 변수를 초기화 할 수 있으며 ,로 구분하도록 한다.
(2) 조건식이 참이면 블록을 실행한다.
(3) 초기화된 변수를 증감하는 증감식을 수행한다. 증감식도 반복문과 마찬가지로 초기화한 변수를 증감하기 위해 두 문장 이상 사용할 수 있으며 ,로 구분한다.
(4) (2)-(3)을 반복하며 (2)에서 조건식이 거짓이면 for문 전체를 빠져나간다.
[참고] 초기화, 조건식, 증감식 모두 생략이 가능하며, 이런 경우 무한 반복문이 된다.
[참고]
for(int i=0; i<10: i++) {
// 문장...
}
위에서 변수 i는 블럭 안에서만 유효하다. 따라서 해당 블럭 밖에서 사용하려면 i를 for문 밖에 선언해야 한다. 변수의 범위는 선언 위치부터 해당 블록 끝까지이다.
2) 중첩 for문
중첩 for문이 가능하다는 것을 알아두자. 어떤 문제를 해결하기 위해서 일단 가장 쉬운 방법대로 코드를 유추하고 거기서 패턴을 찾아내는 노력을 해보자. 나중에 별찍기 예제에서 더 자세하게 다루겠다.
2. while문
반복 횟수를 모를 때 while문을 쓰자. while문은 조건식이 참일 때 블럭이 실행되고 다시 조건식으로 돌아간다. 조건식이 참이면 이 과정을 계속 반복하고 거짓인 경우 while문을 벗어난다. while문의 예제로는 각자리수의 합 구하기 등이 있다.
3. do-while문
while문을 약간 변형한 do-while문은 while문과 달리 무조건 한 번은 블럭 안의 코드가 실행된다. while문만큼 많이 사용되지는 않지만 사용자의 입력을 받고 처리할 때 주로 사용된다. do-while문 조건식 다음 ;을 잊지 않도록 유의하자.
4. break문
break문은 가장 가까운 반복문을 벗어날 때 사용한다. 특정 조건에서 반복문을 벗어나고 싶을 때 if와 주로 사용된다.
[예] 자연수를 차례로 더했을 때 몇까지 더하면 200이 넘을지 구하시오.
int sum = 0, i = 0; while(true) { if (sum > 200) { break; } i++; sum += i; } |
⇔ | int sum = 0, i = 0; while(sum <= 200) { i++; sum += i; } |
왼쪽과 오른쪽 코드는 해당 문제를 구현한 코드 중 일부이다. 이처럼 while문의 !(조건식)은 break문을 포함한 if문의 조건식임을 알 수 있다. 왼쪽 코드가 가독성 측면에서 더 좋다.
5. continue문
continue문은 특정 조건을 제외할 때 사용된다. for문에서 쓰였을 때는 증감식으로, while, do-while문에서는 조건식으로 이동한다. 특정 조건에서 다음 반복으로 바로 넘어가고 싶을 때 if와 주로 사용된다.
6. 이름 붙은 반복문
break문은 가장 가까운 반복문만을 벗어날 수 있기 때문에 중첩 for문 또는 중첩 while문에서는 반복을 완전히 벗어날 수 없다. 이름 붙은 반복문은 보통 break문과 같이 사용된다.
for (초기화; 조건식; 증감식) {
// 문장...
}
'자바 (Java) > 요약' 카테고리의 다른 글
Chpt. 5 배열 - 주제 2. 2차원 배열은 배열의 배열이다. (1) | 2023.10.21 |
---|---|
Chpt. 5 배열 - 주제 1. 배열은 변수의 모음 (1) | 2023.10.21 |
Chpt. 4 조건문과 반복문 - 주제 1. 조건에 맞는 코드만 실행되는 조건문 (1) | 2023.10.20 |
Chpt. 3 연산자 - 주제 1. 모든 연산자는 값을 리턴한다. (2) | 2023.10.19 |
Chpt. 3 연산자 - 주제 2. 값의 손실이 일어나지 않는 방향으로 형변환이 일어난다. (0) | 2023.10.19 |