반복문은 말그대로 어떠한 행위를 반복시키는 방법입니다. 이러한 방법은 총 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 |