Quick

    반복문(1) - for문

 

목록으로

안녕하세요! 코딩 교육 현장에서 미래의 소프트웨어 인재들을 지도하고 계시는 강사님, 선생님, 그리고 프로그래밍의 기초를 탄탄히 다지고자 하는 초중고 학생 여러분! 여러분의 코딩 길잡이가 되어드릴 유익한 프로그래밍 실습 시간입니다.

이번 시간에 우리가 함께 깊이 파헤쳐 볼 주제는 알고리즘 설계의 꽃이라고 불리는 '반복문(Loop)'입니다. 이름에서부터 이미 어떤 역할을 하는지 직관적으로 느껴지시나요? 맞습니다. 반복문은 프로그램 내에서 동일하거나 규칙적으로 변화하는 작업 과정을 컴퓨터가 대신 매우 빠르고 정확하게 수행할 수 있도록 지시하는 핵심 구문입니다. 오늘은 그 첫 번째 시간으로, 횟수가 정해진 반복 작업에 가장 널리 쓰이는 'for문'에 대해 상세히 알아보겠습니다.

■ 1. 반복문(Loop)의 필요성과 컴퓨팅 사고력

왜 우리는 코딩을 할 때 반복문을 필수적으로 사용해야 할까요? 아주 간단한 산술 연산을 예로 들어보겠습니다. "1 + 2 + 3 = ?" 이 수식의 정답은 누구나 쉽게 6이라는 것을 알 수 있습니다. 숫자가 작기 때문에 암산을 하거나 손가락을 꼽아서 세어도 금방 답을 도출할 수 있죠.

그렇다면 문제의 스케일을 조금 키워보겠습니다. 만약 우리가 작성해야 하는 프로그램이 처리해야 할 수식이 다음과 같다면 어떨까요?

1 + 2 + 3 + 4 + 5 + 6 + ....... + 98 + 99 + 100 = ?

이것을 인간이 직접 손가락으로 세거나 계산기를 두드려서 풀기에는 1씩 일정하게 늘어나는 반복 과정이 너무 많고 비효율적입니다. 게다가 100이 아니라 10,000까지 더해야 한다면 시간 낭비는 물론이고 계산 과정에서 휴먼 에러(인적 오류)가 발생할 확률이 매우 높아집니다.

이처럼 단순하고 규칙적인 계산 과정을 컴퓨터의 압도적인 연산 속도에 맡겨 효율성을 극대화하는 것이 바로 반복문을 사용하는 궁극적인 이유입니다. C언어의 반복문 생태계에는 프로그래머의 목적에 따라 골라 쓸 수 있는 총 3가지의 강력한 도구가 준비되어 있습니다.

  • 1) for 문: 반복해야 할 횟수가 명확하게 정해져 있을 때 가장 직관적으로 사용합니다.
  • 2) while 문: 횟수보다는 특정 조건이 만족되는 동안 계속해서 반복해야 할 때 유리합니다.
  • 3) do-while 문: 조건을 따지기 전에 일단 최소 한 번은 코드를 무조건 실행해야 할 때 사용합니다.

■ 2. C언어 for문의 논리적 구조와 문법 분석

세 가지 반복문 중 기초 교육 과정에서 가장 빈번하게 다루어지는 for문에 대해 집중적으로 해부해 보겠습니다. for문은 C언어에서 특정한 명령어 블록을 개발자가 원하는 횟수만큼 정확하게 반복 수행하도록 설계된 제어문입니다.

가장 기본이 되는 문법의 뼈대(Syntax)는 아래와 같은 3단 논리 구조로 이루어져 있습니다.

for ( 초기식 ; 조건식 ; 증감식 ) {
// 반복 실행할 코드 내용
}

괄호 안에 들어가는 세 가지 구성 요소의 역할을 코딩 강사님들께서 학생들에게 설명하실 때는 육상 경기 트랙에 비유하시면 이해가 매우 빠릅니다.

  • 초기식 (Start Point): 육상 선수가 달리기 시작할 출발선을 정하는 것과 같습니다. 주로 기준이 되는 변수(카운터)를 선언하고 초기값을 0이나 1로 세팅합니다. 최초 진입 시 단 한 번만 실행됩니다.
  • 조건식 (Finish Line): 언제까지 달릴지 결승선을 지정하는 가장 핵심적인 요소입니다. 이 조건이 참(True)인 동안에는 트랙을 계속 돌고, 거짓(False)이 되는 순간 즉시 반복을 멈추고 for문을 빠져나옵니다.
  • 증감식 (Step Size): 한 바퀴를 돌 때마다 카운터 변수의 보폭을 얼마만큼 증가시키거나(++) 감소시킬지(--) 결정합니다.

■ 3. 실전 프로젝트: for문을 활용한 누적 합계 구하기

형식만 눈으로 읽어서는 완벽하게 이해하기 어렵습니다. 프로그래밍은 직접 타이핑하며 에러를 겪어보는 것이 최고의 학습법입니다. 앞서 보았던 '1부터 100까지의 누적 덧셈' 과정을 for문을 활용한 실제 C언어 프로그램 코드로 구현해 봅시다.

#include

int main(void) {
int num; // 합계를 구하고 싶은 마지막 목표 수를 담을 공간 선언
int total = 0; // 누적된 덧셈의 결과를 안전하게 보관할 변수 선언 및 0으로 초기화

printf("더하고 싶은 마지막 숫자를 입력하세요: ");
scanf("%d", &num); // 키보드로 사용자에게 num 값을 입력받아 메모리에 저장

// 핵심 for문 설계: i는 1부터 시작하여 num과 같아질 때까지 1씩 증가 반복
for(int i = 1; i <= num; i++) {
total += i; // total 변수에 현재의 i 값을 누적해서 더함 (total = total + i 와 동일)
}

printf("1부터 %d까지의 덧셈 최종 결과는 %d입니다.\n", num, total);
return 0;
}

이 코드를 컴파일하고 실행한 뒤, 프롬프트 창에 100을 입력하게 되면 콘솔 모니터에는 "1부터 100까지의 덧셈 최종 결과는 5050입니다." 라는 문구가 순식간에 출력됩니다.

여기서 가장 중요한 for문의 괄호 안 로직 for(int i=1 ; i <= num ; i++)의 흐름을 다시 한번 꼼꼼하게 뜯어보겠습니다.

  • int i = 1 : 덧셈의 최초 시작점을 1로 설정하겠다는 컴파일러와의 약속입니다.
  • i <= num : 사용자가 키보드로 입력한 숫자(num)에 도달할 때까지만 덧셈 연산을 진행하겠다는 종료 조건입니다.
  • i++ : 한 번 루프를 돌 때마다 더해지는 숫자(i)를 1씩 차근차근 증가시키며 다음 단계로 넘어가겠다는 의미입니다.

이처럼 for문은 루프를 돌아야 하는 전체 횟수(위의 경우 100번)가 명확하게 정해져 있는 시나리오에서 가장 가독성이 좋고 강력한 성능을 발휘하는 문법입니다. 코딩 교육을 받는 학생들은 이 기본 구조를 변형하여 구구단 출력, 별 찍기, 배열 데이터 탐색 등 다양한 알고리즘 기초 실습으로 응용력을 넓혀갈 수 있습니다.

지금까지 C언어 프로그래밍의 대들보 역할을 하는 반복문 중 for문에 대한 핵심 메커니즘을 상세히 알아보았습니다! 눈으로 코드를 읽는 것에서 멈추지 마시고, 증감식을 i+=2 로 바꾸어 홀수의 합만 구해보는 등 직접 데이터를 조작해 보며 소프트웨어의 작동 원리를 체득해 보시길 바랍니다.

for문에 대한 감이 확실히 잡히셨다면, 다음 시간에는 횟수가 정해지지 않은 무한 루프나 조건 기반의 반복 처리에 특화된 while문에 대해 심도 있게 다루어 보도록 하겠습니다. 다음 코딩 실습 시간까지 모두 즐겁게 복습해 보아요! 안녕~!

연관 컨텐츠

결제 및 주문

공지사항 목록