C언어 기초문법

[C기초문법] 반복문(while, do while, for)

Coder101 2022. 2. 5. 23:13

이번 글에서는 C언어 입문자들도 쉽게 배우고, 꼭 배워야하는 자주 쓰이는 "반복문"에 대해 글을 적어보려 한다!

반복문은 이름 그래도 어떤 것을 반복해서 하고 싶을 때 사용되는 것이다.

 

예를 들어 우리가 "Hello World"를 10번 출력 받는 코드를 짠다고 가정해보자. 10번 정도는 반복문 없이도 (이미 살짝 귀찮긴 하지만😅)충분히 코드를 짤 수 있다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");

return 0;
}

하지만 이것이 10번이 아니라 100번, 1000번으로 바뀐다면 그때는 직접 하기 매우 번거로울 것이다. 이럴때 우리는 "반복문"을 사용한다!

이번 글에서는 while, do while, for 이렇게 세가지의 반복문을 소개하려고 한다.

 


while

while문은 특정조건을 주고 그 조건을 만족하는 동안, 특정 영역을 계속해서 반복하는 구조의 반복문이다.

ex)

#include <stdio.h>

int main(void){
int num=0;

while (num<10){
printf("Hello World\n");
num++;
}
return 0;
}

실행결과:

while문

10번 반복되어 출력된 것을 확인 할 수 있다. 출력 결과는 같지만 코드의 길이가 훨씬 간결한 것을 확인할 수 있다. 이것이 바로 반복문의 매력이다!


do while

do while문은 반복 영역을 최소한 한번은 실행하는 구조의 반복문이다. while문과 어떤 차이가 있냐고 물어본다면, while문과 do while은 반복의 조건을 검사하는 시점이 다르다고 설명할 수 있다. 

 

ex)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int total=0, num=0;
    do
    {
        printf("정수 입력 (0 to quit):"); //숫자 0을 입력하면 종료된다
        scanf("%d", &num);
        total += num;
    }while(num!=0); // num이 0이 아닐 때 계속 do while문 안에 있는 내용을 반복해준다
    
    printf("합계:%d\n",total);
    return 0;
}

실행결과:

do while문


for

for문은 반복을 구성하기 위해 필요한 모든 것을 한데 묶을 수 있도록 만들어진 반복문이다.

 

우선, for문의 필수요소는 총 세가지로 구성되어 있다.

1. 초기식 : 반복을 위한 변수의 선언 및 초기화에 사용

2. 조건식 : 반복의 조건을 검사하는 목적으로 선언됨

3. 증감식 : 반복의 조건을 '거짓'으로 만드는 증가 및 감소 연산

 

for문의 원형은 아래와 같다

for(초기식; 조건식; 증감식)
{
 //반복의 대상이 되는 문장들
}

반복의 횟수가 딱 정해진 경우라면 분명 for문의 최선이다.

반면, 반복의 횟수가 정해져 있지 않고, 프로그램 사용자가 임의의 값을 입력하기만 기다리는 상황이라면, for문보다는 while문이 더 자연스러울 수 있다고 생각한다.

 

ex)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    int total=0;
    int i, num;
    printf("0부터 num까지의 덧셈, num은?");
    scanf("%d",&num);
    
    for(i=0; i<num+1; i++)
    {
        total += i;
    }
    printf("0부터 %d까지 덧셈결과:%d\n", num, total);
    return 0;
}

 

실행결과: 

for문

 

이렇게 오늘 while, do while, for 총 세가지의 반복문에 대해서 알아보았는데 글을 잘 못쓰는 편이라 이해가 잘 되게 쓴건지 약간 걱정이 된다ㅎㅎ...  아무튼 마무리!

 

질문이 있거나 이해 안가는 부분은 댓글을 남겨주면 최대한 빠르게 답변해드리겠습니다!