이번에는 반복문 중 하나인 for 문에 대해 알아보도록 하겠습니다.
1. for 문 이란?
첫 번 째 주제에서처럼 for 문도 다른 반복문인 while, do~while문 처럼 반복을 위해 사용되는 문장입니다.
while, do~while 문. 이 두 가지 했으면 충분한 것 같은데 굳이 또 다른 반복문을 할 필요가 있을까? 라는 궁금증이 생기실 수 있습니다.
이에 대한 것은 다음의 예제를 먼저 본 후 진행 하도록 하겠습니다.
예제를 보면서 이렇게 생각할 수 있습니다.
main이라는 함수를 선언 해주고, 4 bytes 크기의 int 형 변수인 count를 선언하면서 동시에 0으로 초기화를 해줬구나.
반복문 중 하나인 while 문을 선언 했는데 조건은 count 가 10이 되기 전까지 while문을 실행 해주는구나.
반복을 실행하는 문장은 어떤 기능일까? -----> "비교를 위한 예제입니다." 라는 문장을 출력하는 구나.
몇 번 출력하는 걸까? ----------> count++; 이라는 문장이 있다면 총 10번의 printf 기능을 하고 반복문인 while 문이 종료가 되겠구나.
while 문이 종료되고나면 return 0; 문장으로 인해서 프로그램이 종료가 되겠구나.
이처럼 어떠한 기능을 '반복'하고 싶고, '몇 번 반복'하고, '반복 조건을 충족시킬 문장'은 어떤 것인지 한 번에 보는 것이 힘듭니다.(번거로워요...)
이렇듯 일반적인 while, do~while 문은 익숙해진다 해도 한 번에 알아 보기에는 약간 무리가 있습니다.
따라서 반복 횟수, 반복 조건 등을 한 번에 알아 볼 수 있도록 해주는 문장이 'for 문' 입니다.
2. for 문의 구조와 이해
for 문의 구조는 다음과 같은 필수 요소 들로 이루어져 있습니다.
필수요소 |
기능 |
초기식 |
반복을 위한 변수의 선언 |
조건식 |
반복의 조건 검사 |
증감식 |
반복의 조건을 '거짓' 으로 만들기 위한 연산 |
물론 위의 요소들이 while, do~while 문 에서도 사용이 되는 요소 들입니다.
예제에서 보시는 것처럼 while, do~while 문에도 필요한 요소들입니다.
하지만 for 문의 경우 초기식, 조건식, 증감식을 한 줄에 표현 할 수 있습니다.
예제에서 알 수 있듯이 반복을 실행할 문장을 '몇 번 반복하고, 반복 조건을 만족 시키는 증가 및 감소식, 반복 조건 및 증가, 감소에 사용되는 변수의 초기화'를 한 줄에 작성하여 알아 보기 편하도록 되어 있는 것을 확인 하실 수 있습니다.
이렇듯 코드를 간결화 하고, 가독성을 좋게 해주기 때문에 for 문을 사용하게 됩니다.
다시 한 번 for 문의 구조를 정리해 보면 다음과 같습니다.
for( 초기식 ; 조건식 ; 증감식 )
{
// 반복의 대상이 되는 문장들
}
이러한 형식으로 for 문을 사용해주시면 됩니다.
그런데 바로 위의 예제에서 for 문을 2개 사용 했는데 왜 그런거지? 라는 궁금증을 가지시는 분들도 계실거고, 대략 눈치를 채신 분들도 계실겁니다.
for 문 이후에 if 문 에서도 나오는 내용이지만 for 문에서 반복할 문장이 1줄일 경우, 중괄호 { } 의 생략이 가능합니다.
* 하지만 반복할 문장의 마지막에 세미콜론 ; 을 반드시 작성하셔야 됩니다.
for 문이 작동하는 순서에 대해 알아보도록 하겠습니다.
for 문이 작동하는 순서는 다음과 같습니다.
1) 초기식 ==> int count=0 에 해당하는 초기화는 반복문이 시작하기 전 '1회' 만 실행합니다.
2) 조건식 ==> count < 10 에 해당하는 조건의 검사는 반복문의 시작에 앞서 진행하고, 반복 영역을 실행하기 전에 항상 확인 합니다.
3) 증감식 ==> count++ 에 해당하는 증감연산은 반복영역을 실행한 후에 진행합니다.
이렇듯 더욱 간단히 순서를 나열해 보면,
(1) 초기식 ==> (2) 조건식 ==> (3) 반복영역 실행! ==> (4) 증감식 ==> (2) ==> (3) ==> (4) ==> (2) 조건식이 '거짓' 이 될 경우 종료!
위와 같은 순서로 for 문이 작동하는 것을 알아 보았습니다.
실제로 편하고(개인 적인 생각입니다.), 가독성이 좋고, 코드의 간결화도 할 수 있는 for 문을 주로 사용합니다.
이것으로 반복문 중 하나인 for 문에 대하여 간단하게 알아 보았습니다.
다음에는 for 문의 중첩과 for 문 중첩 예제, 반복문들을 다양하게 중첩시켜서 사용하는 예제와 for 문 구조의 생략 가능한 부분, for 문의 무한 루프에 대해서 글을 올리도록 하겠습니다.