본문 바로가기
컴퓨터 프로그래밍/c 언어 (c programming language)

C 언어 - 반복문(Loop)

by JaeBaek 2020. 9. 26.

Loop (Flickr)

 특정한 명령을 계속해서 실행을 하고 싶을 때 사용하는 기능입니다. 명령을 여러 번 작성하지 않고 실행할 명령을 여러번 호출하는 것을 가능하게 합니다. 반복문의 종류로는 for 문, while 문, do ~ while 문 3가지가 있습니다. 

 

■ for 문

for문의
기본 형식
for (초기화; 조건식; 증감식) {
    조건식이 참일 때 반복 실행할 문장;
}

 for문은 조건문에 초기화, 조건식, 증감식 이렇게 3가지로 구성이 되어있습니다. 초기화는 변수의 초기값을 할당하고, 조건식은 변수가 어떠한 조건까지만 실행을 한다는 조건을 적고, 증감식은 변수를 증가하거나 감소시키는 것입니다.

 

ex) for Loop

#include <stdio.h>

int main(void)
{
	int i;
	for (i=1;i<5;i++){
		printf("C is easy\n");
	}
 } 
 
※ result
C is easy
C is easy
C is easy
C is easy

 

※ 추가적인 기능

for 문의 조건문에서 초기화, 조건문, 증감식을 비워도 상관이 없습니다. 예를 들어서 for (;;)로 표현을 해도 for문이 실행이 됩니다. 하지만 이러한 경우에는 무한 반복이 되기 때문에 for 문 내부에 어떠한 조건을 걸어 반복문을 빠져나오도록 해야합니다. 그 기능이 바로 break 기능입니다.

무한 반복 for문
탈출하기
for ( ; ; ){
    if(조건식)
        break;
}

 

ex) 무한 반복 for문 탈출하기

인원이 10명을 초과하면 경고 메세지를 남기는 코드를 작성해보도록 하겠습니다.

#include <stdio.h>

int main(void)
{
int i=1;
for (;;){
i+=1;
if (i>=10){
break;
}

printf("인원이 %d명을 초과하였습니다.",i);
 } 

#include <stdio.h>

int main(void)
{
	int i=1;
	for (;;){
		i+=1;
		if (i>=10){
			break;
			}
	} 
	printf("인원이 %d명을 초과하였습니다.",i);
 } 
 
※ result
인원이 10명을 초과하였습니다.

 

■ while 문, do~while 문

while 문

for문과 같은 반복문으로 while문은 조건식이 참이면 while문에 포함되는 문장을 반복 실행을 합니다. for문의 증감식이 조건문 안에 들어갔다면 while문은 실행할 문장안에 들어가는 차이점이 있습니다. 그리고 초기화 작업도 while 밖에서 해야합니다.

while 문의
기본 형식
초기화;
while(조건식) {
    조건식이 참인 동안 반복 수행할 문장;
    증감식;
}

 

do~ while 문

 do~while 문은 기본적인 구조는 while문과 같지만 반복문 블록을 최소 한번은 실행한 후 조건식을 검사합니다. 큰 차이점이라고 하면 do~while문은 조건식 검사를 제일 마지막에 하므로 조건식의 참, 거짓 여부에 관계없이 반복문 내의 코드를 적어도 한번은 실행하는 특징을 가집니다. 이 기능은 사용자의 입력을 받아 처리할 때 유용합니다. 주의할 점은 while(조건식) 뒤에 세미콜론(;)을 잊지 말아야 합니다.

do~while문의
기본 형식
초기화;
do {
    반복 실행할 문장;
} while(조건식);

 

★ 중첩 반복문

중첩 for 문 for (초기화;조건식;증감식)
    for(초기화;조건식;증감식)
        실행문;
중첩 while 문 while(조건식)
    while(조건식)
        실행문;

중첩의 반복문은 매우 중요한 문법으로서 대량의 코드작성을 간단하게 만들어주는 장점이 있습니다. 중첩 for문은 제일 처음 외부 for문에 해당하는 초기화값이 실행되고 내부 for문으로 들어갑니다. 그리고 내부 for문이 조건식에 해당하는 만큼 모두 실행이 되고 나서 외부 for문을 수행하고 이렇게 반복적으로 수행이 됩니다. 

 

ex) 문제 맞추기

3X6에 해당하는 답을 맞출 때 까지 실행이 반복되는 코드를 작성하라.

#include <stdio.h>

int main(void)
{
	int n;
	printf("3*6 = ?\n");
	while (1){
		scanf("%d",&n);
		if(n==18)
			break;
		printf("틀렸습니다.\n");
	} 
	printf("정답입니다. ");
 } 
 
※ result
3*6 = ?
6
틀렸습니다.
18
정답입니다.

 

'컴퓨터 프로그래밍 > c 언어 (c programming language)' 카테고리의 다른 글

C 언어 - 배열(Arrangement)  (0) 2020.09.27
C 언어 - 함수  (0) 2020.09.27
C 언어 - 조건문  (0) 2020.09.26
C 언어 - 표준 입출력  (0) 2020.09.26
C 언어 - 연산자(operator)  (0) 2020.09.26

댓글