반응형

반복문

 

 

반복문 특정한 구문을 반복하여 수행할 때 사용하는 구문이다.

 

반복문의 종류는 크게 for 문 while 문 그리고 do ~ while 문이 있다.

 

-

 

※ for 문 ※

 

for 문은 아래의 사진과 같은 문법을 사용한다.

 

-

 

 

-

 

초기화 : for 문을 실행하면서 제일 처음으로 실행하는 구문이다.

 

for 문을 제어할 변수를 초기화하는 데 사용된다.

 

 

제어 조건 : for 문 반복 문장을 수행할지를 결정하는 제어 조건이다.

 

제어 조건이 참일 경우에만 반복 문장이 수행된다.

 

 

변화식 : 반복할 문장이 수행된 후에는 마지막 단계로 변화식을 수행한다.

 

-

 

이러한 과정을 반복하면서 원하는 수만큼 반복 문장을 실행할 수 있게 되며

 

변화식 반복 문장 안에서 변경도 가능하지만

 

변화식 위치에서 값을 변경하는 것이 일반적이다.

 

설명을 요약하여 반복 순서를 정리하자면 아래의 사진과 같다.

 

-

 

 

-

 

초기화 문장 제일 처음 1회 실행되고

 

제어 조건 확인 -> 반복 구문 실행 -> 변화식의 내용을 반복한다.

 

아래의 예제를 통해 for 문을 이용한 구구단 중에서 2단을 출력하는 것을 봐보자.

 

-

 

test14.c
0.00MB

 

 

 

-

 

7행 for 문이 실행되면

 

i = 1의 초기화 구문을 제일 먼저 실행한다.

 

다음 단계 제어 조건 i <= 9의 조건을 비교하여

 

변수 i의 값이 9보다 작거나 같아 반복 구문이 printf() 함수를 실행한다.

 

다음 단계 변화 수식 변수 i에 1을 증가시키고

 

(for 문 내에서는 연산 후에 변수 i의 값을 제어 조건과 비교하기 때문에 ++i와 i++는 동일한 동작을 수행한다.)

 

다시 제어 조건 i <= 9를 확인하여 i가 현재 2이므로 9보다 작거나 같다는 조건을 만족하므로

 

다시 반복 구문의 내용인 printf() 함수를 실행한다.

 

-

 

조건을 비교 후 계속하여 printf() 함수를 실행하다가 변수 i의 값이 9가 되었을 경우를 보면

 

변수 i의 값이 9일 경우 제어 조건을 만족하므로 반복 구문을 실행한다.

 

그 다음 i의 값을 1 증가시킨 후에는 i의 값이 10이 되어 제어 조건을 만족하지 않는다.

 

더 이상 제어 조건을 만족하지 않기 때문 for 문 내에서 반복 구문을 실행하지 않고 for 문을 빠져나오게 된다.

 

반복문에서는 반복을 수행하고자 하는 구문을 블록 '{'와 '}'로 묶어 사용할 수 있는데 

 

반복 구문 내에 또 다른 반복문이 있으면 해당 반복문이 내부적으로 추가로 반복하여 수행될 수 있다.

 

그리고 이것을 "이중 for문"이라고 하고

 

내부적으로 두 개 이상의 for문이 쓰이면 "다중 for문"이라고 한다.

 

이를 이용하면 구구단 반복문을 이용하여 쉽게 출력할 수 있다.

 

구구단(2단부터 5단까지)을 출력하는 예제를 통해서 for 문에 대해 다시 한번 더 정리해 보자.

 

-

 

test15.c
0.00MB

 

 

 

-

 

위의 예제는 구구단(2단 ~ 5단까지)을 출력하는 예제로 구구단 출력과 계산을 위해서 2개의 for 문이 사용되었다.

 

바깥에 있는 for 문 각 단에 곱하는 값을 제어하는 변수를 반복하기 위해 사용된다.

 

그리고 안쪽에 있는 for 문 단을 의미하는 변수를 제어하기 위해서 사용된다.

 

2개의 for 문이 겹쳐졌기 때문

 

9행 printf 문은 총 9 x 4 = 36으로 두 개의 변수 i와 j가 변하면서 36회 반복하게 된다.

 

-

 

※ while 문 

 

 

while 문은 아래의 사진과 같은 문법을 사용한다.

 

-

 

 

-

 

for 문에서는 제어 조건에서 사용되는 변수의 초기화를 for 문이 수행되면서 가장 먼저 한번 실행되지만

 

while 문의 경우 while 문의 수행을 시작하면서 바로 제어 조건을 확인하므로

 

while 문에 앞서서 초기화가 수행되어야 한다.

 

다음은 while 문을 활용한 예제를 봐보자.

 

-

 

test16.c
0.00MB

 

 

 

-

 

while 문의 경우 

 

실행하면서 제일 먼저 수행 조건을 확인하기 때문

 

제어 변수 i 5행에서 초기화되는 것처럼 while 문의 밖에서 초기화가 이루어져야 한다.

 

-

 

7행에서 while 문 실행 조건을 확인하며

 

실행 조건이 참일 경우에는 8행 9행이 실행된다.

 

9행에서는 제어 변수의 값을 1 증가시킨다.

 

그 뒤에 다시 제어 조건을 확인하고 제어 조건이 참일 경우에는 지속적으로 반복 구문을 실행하다가

 

i가 6이 될 때 제어 조건을 만족하지 않기 때문 더는 while 문을 실행하지 않고 while 문을 빠져나가게 된다.

 

-

 

※ do ~ while 문 ※

 

 

while 문의 경우 조건을 먼저 확인한 후에 반복 구문의 실행 여부를 판단하여 실행하지만

 

do ~ while 문 일단 반복 구문을 먼저 실행한 뒤에 조건을 확인하여

 

반복 구문을 추가로 실행할 것인지 결정하게 된다.

 

아래의 사진을 통해 예제를 봐보자.

 

-

 

test17.c
0.00MB

 

 

 

-

 

do ~ while 문 while 문과 같이 제어 변수에 대한 초기화 구문을 포함하고 있지 않기 때문

 

do ~ while 문에 앞서서 제어 변수의 초기화가 이루어져야 한다.

 

따라서 5행에서 제어 변수 i가 1로 초기화되고 있으며

 

제어 조건을 확인하지 않고 바로 반복 구문인 8행 9행을 실행한다.

 

그다음에야 반복 조건을 확인하게 되는데

 

10행에서 i가 5보다 작거나 같을 때 8행 9행의 반복 구문을 다시 수행하게 된다.

 

-

 

do ~ while 문 while 문과 달리 반복 조건을 만족하지 않더라도

 

최소한 1회라도 반복 구문을 실행한다는 점이 while 문과 가장 큰 차이점이다.

 

-

 

for, while 그리고 do ~ while 구문은 각각 특정한 반복 구문을 일정한 조건에 따라 반복한다는 공통점이 있지만

 

변수의 초기화 방법, 조건의 비교 시점 등 구문마다 특징이 있기 때문

 

상황에 따라 각각의 특징에 맞는 반복문을 사용해야 한다.

반응형

'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글

11. 배열  (0) 2021.02.01
10. break문과 continue문  (0) 2021.02.01
7. 조건문  (0) 2021.02.01
6. 연산자(4)  (0) 2021.02.01
5. 연산자(3)  (0) 2021.02.01

+ Recent posts