C언어 공부

C언어 기초 - 6. 반복문의 개념 (while, for)

Client Side 2025. 8. 13. 17:26

While : ~ 할 때 동안 계속

조건식이 참(1)인 경우에 실행.

조건식이 거짓(0)인 경우에 종료.

 

#include <stdio.h>

int main(void)
{
    int i = 1;
    
    while ( i <= 10)
    {
    printf("%d\n", i);
    i = i+1 ;    
    }

    return 0;
}

while 중괄호가 끝나면 while로 계속 돌아가서 반복된다.

 

출력 값

1
2
3
4
5
6
7
8
9
10

 

 

-- 내림차순 출력

#include <stdio.h>

int main(void)
{
    int i = 10;
    
    while ( i > 0)
    {
    printf("%d\n", i);
    i-- ;    
    }

    return 0;
}

 

 

-- 구구단 만들기

#include <stdio.h>

int main(void)
{
    int dan = 2;
    int i = 1;

    while ( i < 10)
    {
    printf("%d * %d  = %d \n",dan, i,i*dan);
    i++ ;
    }

    return 0;
}

 

 

실무에서는 while문 보다는 for문을 많이 사용한다.

 

 

<while문>

#include <stdio.h>

int main(void)
{
    int i = 1;

    while ( i <= 10)
    {
    printf("%d \n",i);
    i++ ;
    }

    return 0;
}

 

<for문>

#include <stdio.h>

int main(void)
{

    for (int i = 1; i <= 10; i++)   // 증감식은 끝을 알릴 필요가 없기에 ;를 붙이지 않는다.
    {
    printf("%d \n",i);
    }

    return 0;
}

while문과 다른 점은

위의 int i = 1; 이 괄호 안으로 들어가고

아래에 i++; 도  괄호 안에 들어간다

 

참 거짓을 판별하는 조건 앞에 변수 선언, 조건 뒤에 증감식.

 

for문과 while문 비교

  • for문 : 주로 반복 횟수가 정해져 있거나, 특정 범위 내에서 반복해야 할 때 쓰기 편하다.
    • 구조 : for (변수초기화; 조건식; 증감식) {반복할 코드;}
    • 장점 : 반복에 필요한 세 가지 요소(초기화, 조건식, 증감식)가 한 줄에 모여 있어서 코드를 한 눈에 파악하기 좋다.
    • 예시 : "1부터 10까지 1씩 증가시키면서 출력하시오"
      • for (int i = 1;  i <= 10;  i++)  { printf("%d\n", i) ; }
  • while문 : 주로 반복 횟수가 불명확하거나, 특정 '조건'이 만족하는 동안 계속 반복해야 할 때 쓰기 편하다.
    • 구조 : while (조건식)  { 반복할 코드;  증감식(선택적); }
    • 장점 : '조건'에 집중해서 코드를 짤 수 있어서 복잡한 조건을 처리할 때 유용하다.
    • 예시 : "사용자가 0을 입력할 때까지 숫자를 계속 더하시오.

 

 

횟수가 정해져 있으면 for문조건이 중요하고 횟수가 불명확하면 while문 을 사용하는게 좋다!

 

 

for문으로 구구단 만들기

#include <stdio.h>

int main(void)
{
    int dan = 4;

   for (int i = 1;
       i < 10;
        i++
       )
    {
    printf("%d * %d = %d \n",dan,i,i*dan);
    }

    return 0;
}
#include <stdio.h>

int main(void)
{

   for (int i = 1, dan = 4;
       i < 10;
        i++
       )
    {
    printf("%d * %d = %d \n",dan,i,i*dan);
    }

    return 0;
}

 

for문을 이용한 방법은 이렇게 두 가지가 있다.

변수가 두가지인 경우에는 두 가지 변수를 다 반복해야 되는 경우가 아니라면 고정된 변수는 바깥에 미리 선언해주는게 깔끔하다.

 

만약 for 문 안에 두가지 변수를 선언하려면 세미콜론으로 변수를 나누는게 아니라 int i = 1, dan = 4 이렇게  자료형을 앞에 먼저 선언해주고 뒤에는 컴마로 이어준다.

 

for문 안에 두가지 자료형을 변수로 선언할 수 있을까??  -->>  불가능하다.