오늘은 제어문 중에서도 반복문에 대해 배웁니다.
처음 while문과 do-while문을 배울 때 많이 헷갈렸었는데 다시 되짚으면서 기초를 다져나가보도록 하겠습니다.
그럼 정리를 시작할까요!
: 특정 조건이 될 때까지 반복
반복문은 주어진 조건이 만족할 때까지 수행문을 반복적으로 수행하는 것을 말합니다. 반복문에는 while문
do-while문
for문
이 있고 이 세 가지 전부 코드적으로 호환이 가능합니다. 반복문은 조건의 만족과 반복 가능 여부에 대해 정확한 코딩을 해야 합니다.
: 조건식이 참인 동안 수행문을 반복해서 수행
while문
의 형태는 다음과 같습니다.
while (조건식) {
수행문1; //조건식이 참인 동안 반복 수행
...
}
반복문에는 무한반복이라는 것이 있는데요, while문
의 무한반복 형태를 알아보겠습니다.
무한반복
while (true) {
실행문;
...
}
while문
은 조건식이 참인 동안 계속 수행문을 실행하는 것인데요, 그래서 조건식에 true
를 놓으면 항상 참이 되어버려서 계속 수행문이 돌아가게 되는 것입니다.
whlie문
을 활용해봅시다.
1부터 10까지의 숫자를 모두 더한 값을 출력해보세요.
public class 1~10더하기 {
public static void main(String args[]) {
int num = 1;
int sum = 0;
while ( num <= 10 ) {
sum += num;
num++;
}
System.out.println("합 : " + sum);
}
}
do-while문
은 while문
과 언뜻 비슷해보입니다. while문
은 시작할 때 조건이 참이 아니라면 시작을 아예 하지 않습니다. 하지만 do-while문
은 일단 실행문을 한 번 수행한 후 조건을 보기 때문에 최소 수행문을 한 번 수행한다는 특징이 있습니다.
do-while문
은 어떠한 수행문이 있을 때 그 수행문을 최소 한 번 수행하고 나서 조건을 체크하는 경우에 사용합니다.
do-while문
의 형태는 다음과 같습니다.
do {
수행문;
...
} while (조건식);
for문
은 반복문 중에서 가장 많이 사용하는 반복문입니다. 주로 횟수를 나타내는 경우에 많이 사용하고, 조건이 횟수인 경우에 주로 사용합니다. 또한 for문
은 초기화식
조건식
증감식
을 한꺼번에 작성하는 특징이 있습니다.
for문
의 형태는 다음과 같습니다.
for ( 초기화식; 조건식; 증감식 ) {
수행문;
}
for문
을 배우면 항상 하는 예제가 있습니다. 저도 for문
을 배우고 난 뒤에 난이도가 있었던 예제가 바로 구구단인데요, 구구단을 한 번 for문
을 이용하여 작성해봅시다.
public class 구구단 {
public static void main(String args[]) {
for ( int i = 1; i <= 9; i++ ) {
for ( int j = 1; j <= 9; j++ ) {
System.out.println( i+" x "+j+" = "+(i*j) );
}
}
}
}
중첩 for문
에서는 주의해야 할 점이 있는데요, 초기화를 하지 않으면 값이 다 나오지 않은 채로 반복문이 끝날 수 있기 때문에 초기화를 해야할 부분이 있으면 초기화를 반드시 해주어야 합니다.
continue문
은 반복문 자체는 아니지만 반복문에 쓰이는 제어문입니다. 조건문과 같이 쓰이는 경우가 많으며 이름처럼 '계속 해라'라는 뜻입니다.
반복문과 함께 쓰이며, 반복문 내부에 있는 continue문
을 만나면 이후 반복되는 부분을 수행하지 않고 조건식이나 증감식을 수행합니다.
break문
도 반복문 자체는 아니지만 반복문에 쓰이는 제어문입니다.
반복문에서 break문
을 만나면 더 이상 반복을 수행하지 않고 반복문을 빠져나오게 됩니다. 여기서 주의할 점은 모든 반복문을 빠져나오는 것이 아닌 break문
이 있는 해당 반복문만 빠져나온다는 것입니다. 중첩 반복문의 경우 가장 가까운 반복문 하나만 빠져나오게 됩니다.