이번에는 C언어에서 반복 실행을 위해 사용이 되는 반복문 중 하나인 while문에 대하여 알아보도록 하겠습니다.
1. 반복문
반복문 : 하나 이상의 문장을 두 번 이상 반복 실행하기 위해서 구성하는 문장입니다.
반복문의 종류는 'while', 'do~while', 'for' 문이 있습니다.
우선 반복이 필요한 이유에 대해서 다음의 예제를 보도록 하겠습니다.
위 예제에서 확인 할 수 있듯이 반복해서 할 수 있는 작업을 하나씩 전부 작업 해 준다면 효율이 떨어지게 됩니다.
(예제에서는 10개의 문장으로 예를 들었지만 100개, 1000개 등 그 이상을 하게 될 경우 효율이 굉장히 나빠지게 됩니다.)
이렇듯 반복을 해야 할 경우 쉽게 해주는 것이 반복문입니다.
2. while문의 사용
이번 글에서는 반복문 중 하나인 'while문'에 대하여 알아 보도록 하겠습니다.
while이라는 단어를 검색해 보면 '~하는 동안' 이라고 되어 있습니다.
프로그래밍에서도 마찬가지로 while문은 '~하는 동안 반복해라' 라는 것을 의미합니다.
while문을 사용해 보도록 하겠습니다.
while문 사용은 다음의 예제를 통해 먼저 알아보고 진행하도록 하겠습니다.
위 예제와 위쪽 글의 주제에 사용 되었던 예제 사진과 비교를 해 본 결과 반복문을 사용할 경우 훨씬 효율적인 것을 알 수 있습니다.
반복문 중 하나인 while문을 사용하기 위해서 다음과 같은 사실들을 알 수 있습니다.
1) 반복을 하기 위한 조건 설정 ( 5번째 줄의 int num = 1; / 7번째 줄의 while 다음에 있는 (num < 11) / 10번 째 줄의 num++; )
2) 반복을 하기 원하는 문장 ( 9번째 줄의 printf 문장 )
실행 순서는 다음과 같습니다.
(1) 10번 반복 하고 싶으니까 10번 반복을 위해 count 해 줄 값인 1을 num 이라는 변수에 저장
(2) while문을 선언하고 10번 반복을 위해 num이라는 변수에 저장 되어 있는 값이 11 보다 작을 때까지 라는 조건 설정
(3) 반복을 실행할 문장 작성
(4) num이라는 변수에 저장 되어 있는 값을 1 증가 (이 때 num++ 문장으로 인하여 num 값은 2가 됩니다.)
(또한 아직 num에 있는 값이 while문의 조건 (num < 11) 을 만족하기 때문에 return 0; 문장을 실행하지 않고 다시 while문을 실행하게 됩니다.
(5) (3) ~ (4) 를 계속 반복 하면서 num 값이 11이 되어서 다시 while문의 조건(num < 11)으로 가서 해당 조건이 만족하지 않을 경우 while문을 빠져나오게 됩니다.
(6) return 0; 실행 (프로그램 종료)
이렇듯 반복을 원하는 문장과 반복 하기 위한 조건을 설정을 하게 되면 해당 반복조건이 만족하지 않을 때까지 while문이 실행이 되고, 반복조건이 만족하지 않으면 while문을 종료하고 다음 문장을 실행하게 됩니다.
3. while문의 들여쓰기
들여쓰기와 관련하여 다음의 예제를 보고 진행하도록 하겠습니다.
[들여쓰기 하지 않았을 경우]
[들여쓰기를 한 경우]
위의 두 사진에서 알 수 있듯이 들여쓰기를 해도 되고, 하지 않아도 상관은 없습니다.
단지 들여쓰기를 하게 되면 가독성이 훨씬 좋아지기 때문에 보편적으로 들여쓰기를 해서 프로그램을 작성합니다.
들여쓰기의 기준은 보통 띄어쓰기(Space) 4회 또는 Tab을 사용합니다.
들여쓰기를 하실 때 띄어쓰기(Space)와 Tab을 혼용해서 사용하시는 것보다 하나로 통일해서 일관성 있게 하는 것이 좋습니다.
(실제로 저는 처음에 프로그래밍을 할 때 띄어쓰기(Space)와 Tab을 혼용해서 사용 했었는데 작성한 소스를 수정할 때 굉장히 불편함을 겪은 적이 있습니다.)
4. 반복문의 중괄호 { } 생략
int main(void) 함수에서도 중괄호 { } 를 사용하였는데 while문에서도 사용하니까 불편하다 라고 하실 수도 있습니다.
이와 관련하여 생략을 할 수 있는 경우가 있습니다.
실행할 문장이 한 줄이거나, 한줄로 표현이 가능한 경우 입니다.
위의 예제처럼 한 줄로 표현이 가능한 경우 중괄호 { } 를 생략할 수 있습니다.
(중괄호를 사용하지 않기 위해 일부러 한줄로 다 표현하는 경우 가독성이 굉장히 떨어지게 됩니다. 그러한 방법은 사용하지 않는 것을 권장합니다.)
또한 하나의 문장이어도 중괄호 { } 를 포함 할 수 있습니다.
위의 예제처럼 하나의 문장이지만 중괄호 { } 를 생략하지 않아도 아무런 이상이 없이 정상적으로 작동하는 것을 알 수 있습니다.
이것으로 반복문 중 하나인 while문의 첫 번째 Part에 관한 내용이 끝났습니다.
다음 글에서는 while문의 무한루프와 while문의 중첩에 대하여 공부하고 글을 올리도록 하겠습니다.
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 반복문 - do~while문 (0) | 2017.01.09 |
---|---|
C언어 반복문 - while문(2) (0) | 2017.01.02 |
C언어 printf 함수 와 scanf 함수 (0) | 2017.01.01 |
C언어 상수와 기본 자료형 (0) | 2016.12.27 |
C언어 데이터 표현방식 (0) | 2016.12.25 |