[c언어 기초]

우리가 아는 C언어

[c언어 기초] 우리가 아는 C언어

반복문1

while에 대해서

반복문

우리가 똑같은 의미를 가진 명령들을 수십번 반복해야 된다면 어떨까요?
10번이고 100번이고 반복해서 똑같은 코드를 치는 것은 매우 비효율적이죠.
이러한 비효율적인 문제를 해결하는 방법이 우리가 배울 반복문입니다.

 

while

while은 조건이 참일 동안 계속 명령을 실행하고 조건이 거짓이면 종료합니다.

아래의 코드를 직접 작성하고 실행해 봅시다.

#include <stdio.h>
main()
{
int a;
scanf("%d", &a);
while (a>0)
{
if (a%2==1)
printf("홀수\n");
else
printf("짝수\n");
scanf("%d", &a);
}
}

실행결과

위 프로그램을 실행해 숫자를 입력하면 홀수인지 짝수인지 출력하고 다시 입력을 기다리고 음수를 입력하면 종료됩니다.
 
  • 5행에서 입력받은 변수 a의 값이 양수이면 반복 조건이 참이 되어 홀수 또는 짝수를 판단하고 6 ~ 13행의 블록을 실행하게 됩니다.
  • 6행에서 입력한 숫자가 0이하이면 while의 반복 조건이 거짓이 되므로, while 안의 블록을 실행하지 않은 채 프로그램이 종료됩니다.
  • 12행에서 새로운 숫자를 입력 받으면서 6행으로 다시 돌아가 while 옆의 조건을 확인하고 반복합니다. 만약 거짓(a>0)이 입력 되었을 경우 프로그램을 종료합니다.

while은 조건이 참인 동안 계속 반복하는 명령입니다. if와 마찬가지로 조건이 참이면 해당 블록을 실행하고, 거짓이면 블록을 실행하지 않고 종료하죠.

 

while문의 기본 형식

while (반복 조건)
{
반복 조건이 참일 경우 실행되는 명령문
}  //정상적으로 실행된 뒤 1행으로 돌아간다.

//while 옆의 반복조건이 거짓일 경우 종료된다.

 

do ~ while

do ~ while은 반복 조건이 아래에 있어 일단 do 블록을 한 번 실행한 후 반복 조건을 확인합니다. 따라서 조건이 거짓인 경우에도 최소 한 번은 실행되는 형태이죠.

 아래의 코드를 직접 작성하고 실행해 봅시다.

#include <stdio.h>
main()
{
int a;
do{
scanf("%d", &a);
if (a%2==1)
printf("홀수\n");
else
printf("짝수\n");
} while (a>0);
}

실행결과

0보다 작은 수를 입력해도 최소 한번은 실행되고 종료되기 때문에 값이 입력되었습니다.

  • do ~ while문의 경우 while(조건) 뒤에 세미콜론(;)을 반드시 넣어야 합니다. 

 

do ~ while문의 기본 형식

do{
반드시 실행되는 명령문
} while(반복 조건); //반복 조건이 참이 될 경우 1행으로 이동, 거짓일 경우 종료

// do ~ while문은 do {}안의 명령이 먼저 실행되고 while 의 반복 조건을 비교합니다.

 

다음 토픽에서는 반복문의 한 종류인 for에 대해 알아봅시다.

댓글

댓글 본문
  1. 호두
    고맙습니다.
버전 관리
life knowledge
현재 버전
선택 버전
graphittie 자세히 보기