- while
- do ... while
- for
- break
- continue
같은 동작 혹은 규칙을 갖는 동작을 반복해야 하는 경우가 있다. 예를 들어 1~10 출력, 구구단 출력 등이 있다.
1) while
while문은 통해 반목문이 돌아가는 방식을 이해해보자.
int i = 1;
while(i <= 10) // 반복 조건, 반복문 진입 조건
{
printf("%d ", i);
++i;
}
output |
1 2 3 4 5 6 7 8 9 10 |
while(...) 에서 ... 에 들어갈 식은 반복 조건이다. ... 식을 만족해야 반복문이 시작된다. 조건을 만족하지 못 하면 반복문을 무시한다. 일단 반복문에 진입하고 나면 {...} 괄호 내부 동작을 실행한다. 이 코드에서는 printf() 에서 숫자를 출력하고 그 숫자에 1을 더해주고 있다. 처음 숫자가 1이고 반복문 한 번을 마치고 나면 숫자가 2가 된다. 그리고 다시 반복문 진입조건을 확인한 후 반복문을 실행한다. 반복문은 반복 조건이 거짓이 될 때까지 반복된다. 마지막으로 10을 출력하고 i가 11이 되면 반복조건이 거짓이 되므로 반복문을 탈출한다.
2) do ... while
do ... while은 while과 거의 동일하다.
int i = 1;
do
{
printf("%d ", i);
++i;
} while(i <= 10)
output |
1 2 3 4 5 6 7 8 9 10 |
do ... while 문은 반복문에 처음 진입할 때는 조건을 확인하지 않는다. 즉, 무조건 한 번은 실행한다. 반복문이 끝나면 반복 조건을 마지막에 확인한다. 조건에 상관없이 한 번은 실행된다는 것 외에는 while문과 차이가 없다.
3) for
for문은 while문의 일반적인 사용 방법(마지막에 1을 더해주는 방식)을 더 간결한 코드로 작성할 수 있게 해준다. 가장 많이 사용하는 반복문이다.
int i;
for(i = 1; i <= 10; ++i) {
printf("%d ", i);
}
output |
1 2 3 4 5 6 7 8 9 10 |
i = 1; 부분이 조건에 사용할 변수를 초기화 해준다. 변수의 선언과 초기화를 분리하지 않고 for(int i = 1; i <= 10; ++i)처럼 작성하는 것도 가능하다. 가운데 자리에 반복 조건을 쓰고, 마지막 자리에 반복문이 끝날 때 취할 연산을 작성한다.
4) break
break를 사용하면 현재 속해있는 반복문 하나를 탈출한다. 반복문이 중첩되어 있다면 가장 안쪽에 있는 반복문만 탈출한다. 다양한 코드 작성법, 코드 길이를 줄이는 방법 등을 보여주기 위해 이번에는 printf()에서 i값을 증가시켰다.
int i = 1;
while(1) {
printf("%d ", i++);
if(i > 10) {
break;
}
}
output |
1 2 3 4 5 6 7 8 9 10 |
5) continue
continue는 continue를 만난 시점에서 반복문을 처음부터 다시 실행한다. 만약 for문이라면 ++i부분 실행 후 반복한다. 이번에도 if문 괄호 생략이 가능하고 같은 줄에 작성이 가능하다는 것을 보여주기 위해 다른 방식으로 코드를 작성했다. 여러 가지 방법이 있다는 것을 인지하고 새로운 코드 스타일을 만나더라도 당황하지 말자. 다만, 각 언어따른 코드 작성 표준을 따라가는 게 가장 좋다.
int i = 0;
while(1) {
printf("%d ", ++i);
if(i < 10) continue;
break;
}
output |
1 2 3 4 5 6 7 8 9 10 |
6) goto
C언어에 코드의 흐름을 제어하는 문법에 goto가 존재한다. 하지만 이 문법을 사용하면 코드 흐름을 예측하기 힘들기 때문에 설명을 생략했다.
'C언어' 카테고리의 다른 글
C언어 기초 part 2-1. 배열 (0) | 2020.01.21 |
---|---|
C언어 기초 10. 함수 (part 1. 끝) (2) | 2019.12.14 |
C언어 기초 8. 조건문 (0) | 2019.09.12 |
C언어 기초 7. C언어 연산 (0) | 2019.09.07 |
C언어 기초 6. 주석 (0) | 2019.09.07 |