반복문이란 ?
만약 ” Korea” 를 100 번 정도 출력해야 한다면 어떻게 해야 될까? 출력 함수 printf 함수를 100 번 사용한다면 좋을까 ? 이런 방법은 지겹고 너무 원시적인 방법이다.
게다가 출력을 많이 할 수록 코드의 길이도 함께 늘어 난다.
이런 비효율적인 행동을 하지 않도록 C언어에서는 3 가지의 반복 명령문을 제공하고 있다. while 문 , do~while문 , for 문이 바로 그것들 이다. 이 반복문들의 공통점은 특정 조건을 만족하는 동안은 동일한 문장을 반복한다는 점이다.
- while 문은 반복 조건의 충족 여부를 먼저 검사한 후 반복 문장을 실행한다.
- 반복 횟수가 중요한 경우라면 for 문을 사용하는 것이 좋다.
- do~while 문은 반복문을 무조건 1회 실행한 후 조건 만족 여부를 조사한다.
while 문
while문은 반복을 명령하는 것이다. 즉 , while 문은 일정한 조건이 주어지고 그 조건을 충족한다면 특정한 코드를 계속 반복하는 문장이다.따라서 최초의 조건을 만족하지 못 하면 단 한 번도 실행 되지 않는다. while 문의 형식은 아래와 같은 형식을 갖는다.
while( 조건식) { 실행 문장 }
아래 코드를 보자
while(number < 3)
{ printf (” Korea\n ” );
number++ ;
}
while문의 소 괄호 안에 반복을 위한 조건이 있고 중 괄호 안에 반복될 코드가 있다. 만약 변수 number 의 값이 1 이라면 조건을 만족하므로 Korea 를 출력하고 number 의 값을 1 증가 시킨다. 그리고 다시 동일한 과정을 반복하다가 number가 3이 되어 조건을 만족 시키지 못 하면 while 문을 벗어난다.
또 하나의 예제를 보자.
int main(void)
{
int a = 0 ;
while( a<5)
{ printf ( ” Seoul \n ” , a) ;
a++ ;
}
return 0 ;
}
위 코드의 실행 결과는 다음과 같다.
Seoul 0
Seoul 1
Seoul 2
Seoul 3
Seoul 4
위 코드에서 반복 조건은 a < 5 이다. a의 값이 0 에서 시작 되었으므로 printf ( ” Seoul \n ” , a) 을 5 회 반복 한다. 그런데 만약에 변수 a의 값을 증가 시키는 a++ 코드를 삭제 또는 주석 처리 한다면 어떨까? 그러면 프로그램이 종료하지 않고 이른바 무한 루프(무한 반복)을 하게 된다. 그러므로 , 반복문을 생성함에는 반복을 끝내기 위한 코드도 반드시 필요하다. 참고로 무한 반복을 끝내려면 Ctrl + C 키를 입력하면 된다.
반복될 문장이 한 개라면 중괄호는 생략할 수 있다.
즉 while 문의 중괄호는 반복 대상이 두 개 이상이라면 이 것들을 보기 좋게 묶는 것이 목적이므로 한 개라면 중괄호는 없어도 된다.
위 예제 코드는 아래와 같이 바꿀 수 있다.
while(a<5)
printf ( “Seoul \n ” , a ) , a++ ;
또는 다음과 같이 쓸 수도 있다.
while(a<5)
printf(“Seoul %d \n” , a++) ;