LetITGo

자료구조 - C언어 반복문에 대해 알아보자 본문

전공지식/자료구조와 알고리즘

자료구조 - C언어 반복문에 대해 알아보자

올라프의 취미 2020. 8. 25. 11:30
728x90

 프로그램에는 3가지의 흐름이 있습니다. 순차적으로 짜인 순서대로 흐르는 것과 여러 개의 경로에서 선택하는 흐름, 조건을 만족할 때까지 반복하는 반복하는 흐름이 있습니다. 그중에서 오늘은 반복하는 구조인 반복문에 대해서 알아보겠습니다.

반복문이 필요한 이유

프로그램에서 반복 구조가 필요한 이유가 뭘까요?
 만약 한 반에 50명이 넘는 학생들의 성적을 처리할 때 50명의 학생들의 성적을 입력하고 평균을 계산하고 출력하는 과정을 50번이나 반복하는 것은 비효율 적입니다. 그래서 성적 입력, 평균 계산, 성적 출력 이 과정들을 단순 반복하는 것을 쉽게 하기 위해서 반복문이 필요합니다. 또한 학생수가 60명이나 40명으로 변경될 경우 직접 줄 수를 줄여야 하는 불편함을 없애줍니다.

반복문의 종류

 반복문에는 2가지 종류가 있습니다.
For 문과 While문이 있습니다. 
 While 문은 조건이 만족할 때까지 괄호 안에 주어진 문장을 반복해서 실행합니다. 다음과 같은 예제가 있을 때 i는 0부터 시작해서 While문안에 있는 meter를 계산하여 출력하고 i가 하나씩 커집니다 그러다가 i가 3 이 되는 순간 i<3을 만족하지 않기 때문에 출력하지 않고 반복을 중단합니다.

 For문은 ( 초기식  ;  조건식  ;  증감식)으로 구성됩니다. 
예제에서 첫 번째 경우에는 i가 10부터 하나씩 감소하고 두 번째는 i가 0부터 2씩 증가하고 세 번째는 i가 1부터 2가 곱해지며 마지막 경우는 무한반복을 하는 경우입니다.
 For 문은 특정 구간의 수들을 합치는 프로그램으로 유용하게 쓸 수 있습니다.

반복문을 제어하는 Break와 Continue

 반복문에서는 반목을 제어하는 용어가 매우 중요합니다.
Break문은 반복에서 빠져나오는 데 사용됩니다. 위의 경우에서는 i가 1부터 하나씩 커지다가 i가 30이 되는 순간 break문이 실행되면서 반복문에서 빠져나옵니다. 만약 break문이 없으면 while(1)은 무한반복을 의미하기 때문에 프로그램이 끝나지 않습니다.

 Continue 문은 반복을 중단하고 다음 반복을 시작합니다. 아래의 경우에서는 i가 0부터 9까지 하나씩 증가합니다. 그러나 2로 나눈 나머지가 0이 되면 continue문이 실행되어서 다음 조건으로 반복됩니다. 그래서 출력이 되지 않으므로 전체적으로 홀수만 출력되는 프로그램이 됩니다.

 

실전 문제 적용

 그럼 정수 1부터 특정 변수까지 출력하는 프로그램을 만들어보도록 하겠습니다.

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
int main() {
	int i = 1, n, sum = 0;
	printf("정수를 입력하세요 : \n");
	scanf("%d", &n);

	while (i <= n) {
		sum = sum + i;
		i++;
	}

	printf("1부터 %d까지의 정수 합은 %d \n", n, sum);
	return 0;
}

실제로 5를 넣으면 이렇게 나옵니다. 

 

Comments