반복문은 말그대로 어떠한 행위를 반복시키는 방법입니다. 이러한 방법은 총 3가지가 있습니다. while, do~while, for문 순으로 알아보겠습니다.


while문

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


while(num<3)    //반복의 조건은 num<3

{

printf(""Hello World %d \n", num);

num++;                            // num이 3보다 작아 중괄호에 들어왔으니 1증가 시킨다.

}


이것이 while문입니다. 보듯이 소괄호 안에 반복의 조건을 명시하고, 이 조건이 만족되는 동안 중괄호 안에 존재하는 코드가 반복 실행되는 구조입니다. 만약 num의 초기값이 0이라면 문장은 3번의 반복을 진행하고 while문을 벗어나, 그 다음 행을 실행하게 됩니다. 이 문장에서 가장 중요한 부분은 num++입니다. 이는 반복의 조건을 무너뜨리기 위한 최소한의 연산입니다. 만약 이 문장이 없다면 무한루프가 발생하게 됩니다.

무한루프를 구성하고자 하면 while의 소괄호에 참을 의미하는 숫자 1를 넣어주면 됩니다. 이 경우에 무한루프를 무너뜨리는 요소는 break문입니다.


do~while문

while문과의 차이점은 반복의 조건을 검사하는 시점에 있습니다. do~while문은 반복조건을 while문과 달리 뒷부분에서 검사합니다. 따라서 반복 조건을 만족하지않더라도 최소한 한번은 실행되는 구조입니다.


do

{

printf("Hello world \n");
num++;

} while(num < 3);


이와 같이 사용합니다. 코드를 해석해보면 while문과 크게 다르지않습니다. 그래서 두 방법은 서로 변형이 가능합니다. 허나, while문의 경우 반복의 조건이 앞 부분에 위치해 코드를 작성하고 해석하는데 더 용이하여 while문을 일반적으로 사용합니다.


for문

이전의 반복문과 달리 for문은 반복을 위한 변수의 선언과 반복조건을 거짓으로 만들기 위한 값의 증가 및 감소연산 등을 한데 묶을 수 있도록 만들어진 반복문입니다.

for(초기식; 조건식; 증감식)

{

//반복의 대상이 되는 문장들

}

  • 초기식    반복을 위한 변수의 선언 및 초기화에 사용
  • 조건식    반복의 조건을 검사하는 목적으로 선언
  • 증감식    반복의 조건을 '거짓'으로 만드는 증가 및 감소연산

따라서 앞의 예문을 for문으로 표현하면 아래와 같습니다.


for(int num = 0; num < 3; num++)

printf("Hi~");    //반복되는 문장이 하나이면 중괄호를 생략할 수 있다


세 가지 방법을 확인해본 결과 for문의 가장 편리한 반복문이라 생각할 수 있습니다. 다만, 이는 반복의 횟수가 미리 정해진 경우에만 해당됩니다. 그렇다고 for문에서 무한루프를 만들 수 없는 것은 아닙니다. 조건식을 비워둔다면 무조건 참으로 인식되어 무한루프를 형성할 수 있습니다.


'배울 것들 > 언어' 카테고리의 다른 글

C프로그래밍 8/? 함수  (0) 2018.11.20
C프로그래밍 7/? 조건문  (0) 2018.11.19
C프로그래밍 5/? 자료형  (0) 2018.11.13
C프로그래밍 4/? 자료형  (0) 2018.11.11
C프로그래밍 3/? 데이터  (0) 2018.11.10

+ Recent posts