저번 포스팅에서는 if문을 비롯한 선택구조에 대하여 알아보았다.
이번 다룰 반복구조란, 조건이 만족되면 동일한 명령어를 반복하면서 실행하는 구조이다.
1. while문
while (조건식) 문장; //한 문장일때
while (조건식) {
문장;
}
조건식이 참인 동안에 while문 내부의 문장들이 반복 실행되는 구조이다.
int i = 1;
while (i < 10){
printf("%d\n",i);
i++;
}
-do ... while
do 문장; //한 문장일때
while (조건식);
do {
문장;
...
}
while (조건식);
do 내부의 문장들을 우선 실행하고, 조건식에 맞지않으면 반복문을 나가는 형태이다.
while과의 차이점은 while은 조건에 부합하는지를 판단하고, 실행하는 반면
do while은 일단 실행한 후, 조건에 부합하는지를 판단하고 실행하는 것이다.
만약에 조건과 관계없이 사전적으로 실행이 필요하다면 do while이 필요하다.
while을 이용한다면 while문 앞에서 먼저 따로 실행을 하고 들어가야하기 때문이다.
int i;
do {
printf("1: 새로만들기\n");
printf("2: 파일열기\n");
scanf("%d",&i);
} while(!(i == 1 || i ==2)); //i가 1이나 2가 아니면 무한히 물어보겠다는 것
2. for문
for (초기화; 조건식; 증감) 문장; //한 문장일때
for (초기화; 조건식; 증감) {
문장;
...
}
초기화된 변수에 대한 증감을 보이고, 그 변수에 대한 조건식이 참일 동안 for문 내부의 문장을 실행하는 구조.
int i;
for (i = 0; i<=6; i++){
printf("%d\n",i);
}
>>>
0
1
2
3
4
5
6
int i; int j=3;
for (i = 0; (i+j)<=6; i+=2){
printf("%d\n",i);
}
>>>
0
2
참고로 증감수식은 자유자재로 사용할 수 있다.
whlie 1; 처럼 for (; ;)과 같이 무한 루프도 가능하다.
-while문과 for문의 관계
while문에서 변수를 따로 초기화를 하고, 루프내부에서 증감을 해주는 것을 for문에서는 하나의 식으로 묶어놓았다고 생각할 수 있다.
'CS > C언어' 카테고리의 다른 글
[C언어] 7. 라이브러리 함수(math.h), 난수 생성 (0) | 2024.06.06 |
---|---|
[C언어] 6. 반복문(2) - 중첩반복문, break, continue (0) | 2024.06.06 |
[C언어] 5. 선택문(1) - if문 (1) | 2024.06.05 |
[C언어] 4(2) - 연산자(2) - 비트연산자, 연산자 우선순위 (0) | 2024.06.05 |
[C언어] 4. 연산자(1) - 산술, 대입, 복합대입, 증감, 관계/논리, 조건 (0) | 2024.06.04 |