- for문
- 중첩된 for문
- while문
- do ~ while문
- break문과 continue문
- Q&A
- 마치며
for (초기식;조건식;증감식) { ... }
- 초기식
: 제어변수가 초기화 됩니다.
C언어에서는 '얼마나 반복'을 해야하는 지 알기 위해 '제어변수'를 도입했습니다.
이를 통해, 제어변수가 특정 조건을 만족할 때까지만 반복을 수행하게 됩니다.
이 제어변수의 초기값을 '초기식'에서 지정합니다.
- 조건식
: 제어변수가 만족해야할 특정 조건입니다.
제어변수가 조건식을 만족할 때,
즉 참이 될 때만 반복문이 수행됩니다.
- 증감식
: 1회 실행 시 제어변수의 값을 변화시키는 식입니다.
만약, 제어변수가 조건식에서 참을 만족해 1회 수행을 했다면
증감식을 통해 제어변수의 값을 변경합니다.
이러한 행위가 매번 실행할 때 마다 반복되고, 조건식을 만족하는지 체크하여 반복을 결정합니다.
#include <stdio.h>
int main(void)
{
int i, sum = 0;
for (i = 0; i <= 10; i++)
{
sum += i;
}
printf("1부터 10까지의 합 : %d", sum);
return 0;
}
[Result]
1부터 10까지의 합 : 55
위의 예제는 1부터 10까지의 합을 구하는 코드입니다.
for문에서 제어변수 i
를 통해 1(정확히는 0부터죠)부터 10까지의 합을 구했습니다.
매 반복마다 i
에 1
씩 더하면서 10이하라면 for문을 수행하게 됩니다.
즉, for문은 { }
안에 작업들을 조건식이 성립할 동안 반복해주는 것이고, 매 반복마다 증감식을 실행합니다.
- 중첩된 for문
: for문 안에 또 다른 for문이 들어있는 형태
for(초기식1;조건식1;증감식1) // 1st for문 { ... for(초기식2;조건식2;증감식2) // 2nd for문 { ... } }
- 반복 횟수 : (순회할 객체1의 수) * (순회할 객체2의 수)
#include <stdio.h>
int main(void)
{
int i, j;
for (i = 1; i < 10; i++) // 1st for문
{
for (j = 1; j < 10; j++) //2nd for문
{
printf("%d * %d : %d\n", i, j, i*j);
}
printf("\n");
}
return 0;
}
[Result]
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
...
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
whlie(조건식) { ... }
#include <stdio.h>
int main(void)
{
int i = 0, sum = 0;
while (i <= 10)
{
sum += i;
i++;
}
printf("1부터 10까지의 합 : %d", sum);
return 0;
}
[Result]
1부터 10까지의 합 : 55
위의 예제는 1부터 10까지의 합을 구하는 코드를 while문으로 작성했습니다.
for문과 구조적인 차이는 있습니다만,
하는 행위는 동일합니다.
차이점이 있다면
1. 제어변수 i
를 먼저 초기화해주셔야 합니다.
2. 증감식이 while문 내에 위치합니다.
이러한 이유 때문에, 논리적인 오류가 많이 발생하니 주의해야겠네요!
do { ... } while (조건식);
do ~ while문은 while문과 비슷하지만 가장 큰 차이점이 있습니다!
바로,
while문은 명령을 실행하기 전 조건식이 참인지 검사합니다.
따라서, 조건식이 처음부터 거짓이라면 while문을 실행안할 수도 있죠
하지만, do ~ while문은 명령문을 수행한 후에 조건식의 참/거짓을 판별합니다.
따라서, 최소한 한 번은 실행하게 됩니다.
논리적으로 이 반복문들의 순서를 바꿀 수 있는 방법이 없을까요?
당연히 있겠죠😉
그건 바로, 지금 살펴볼 break문과 continue문입니다.
- break문
: 논리적으로 반복문을 빠져나갈 때 사용- continue문
: 이후 코드는 건너뛰고 반복문을 계속 실행할 때 사용
다음은 break
를 사용해,
제어변수 i
가 5
이면 반복문을 빠져나오는 코드입니다.
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
printf("%d ", i);
}
return 0;
}
[Result]
0 1 2 3 4
다음은 위의 코드와 다르게 continue
를 사용해,
제어변수 i
가 5
이면 건너뛰는 코드입니다.
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
printf("%d ", i);
}
return 0;
}
[Result]
0 1 2 3 4 6 7 8 9
-
-
[Reference] : 위 글은 다음 내용을 참고, 인용하여 만들어졌습니다.