본문 바로가기
C# 기초문법

[C#] (4) 조건을 기준으로 반복시키기 - for문

by novices 2022. 9. 9.

모든 프로그래밍에서는 원하는 명령을 반복시키는 문법이 존재합니다. 반복문에 대한 문법도 처음에는 복잡하고 눈에 들어오지 않기 때문에 학습을 불편해하는 경우가 많은데 반복문이 없는 프로그래밍은 현실적으로 불가능합니다. 코딩을 하다 보면 같은 명령을 수차례 반복해야 하는 경우가 많아 수동으로 입력하거나 검증하기에는 불가능에 가깝기 때문입니다. 이번 포스팅에서는 반복 문중 for문에 대한 문법과 특징에 대해 쉽게 이해할 수 있도록 설명과 예시를 작성해 보겠습니다.

 

 

1. for문에 대하여

c#에서 사용되는 대표적인 문법인 for문의 동작 흐름은 초기값을 지정하고 초기값이 어떤 조건에 충족될 때까지 초기값을 증가시켜 작동됩니다. 아래는 기본 문법 그림입니다.

 

for 문법 구조 그림
for문 문법

 

예시로 10개의 컨테이너를 배에 적재하는 동작 흐름을 글로 표현하면 아래와 같습니다.

예시를 위한 전제 된 내용
배에 적재된 컨테이너는 없다.
컨테이너는 작업 시 1개씩 적재된다.
적재 작업 후 명령한 횟수를 기록한다.

 

예시 동작흐름

  • 초기값 - 적재 명령을 내린 횟수는 0입니다.
  • 조건식 - 적재 명령을 내린 횟수가 10번이 될 때까지만 작업할 수 있습니다.
  • 명령 블록 - 조건에 해당된다면 컨테이너를 추가 적재합니다.
  • 증가 값 - 적재 명령 횟수를 +1 추가 기록합니다.

 

다시 위의 표현을 코드로 작성하면 아래와 같습니다.

using System;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            int shippedContainer = 0; // 적재 완료 된 컨테이너 수
            int numberOfRequired = 10; // 적재 해야 될 컨테이너 수 

	// 적재명령 횟수는 0으로 시작해서 10보다 작은 9가 될 때 까지만
            // 적재 명령을 내릴 수 있다. 적재 후에는 명령 횟수를 +1 추가 기록한다.
            for(int i = 0; i < numberOfRequired; i++)
            {
                Console.WriteLine("적재 명령을 내린 횟수: " + i);

                Console.WriteLine("적재 명령");
                shippedContainer = shippedContainer + 1;

                Console.WriteLine("적재된 컨테이너 수: " + shippedContainer);
            }

            Console.ReadLine();
        }
    }
}

 

문법 요점

  • for문의 구성은 초기값, 조건식, 증가 값, 명령 블록으로 이루어져 있습니다.
  • for구문이 시작되면 기준이 되는 변수 i를 초기값으로 설정하고 조건을 확인합니다.
  • 조건에 해당된다면 명령 블록을 실행하고 증가 값을 올립니다.
  • 위에 흐름을 조건에 맞지 않을 때까지 반복합니다.
  • 증가 값에 사용된 ++은 숏컷으로 값을 1 증가시키라는 뜻을 가지고 있습니다.
  • 증가 값에 --기호를 사용하여 기준값을 감소시킬 수 있습니다.

 

 

2. 응용하기

1항에서 for문의 문법과 작동의 흐름을 알아보았습니다. 2항에서는 for 반복 구문안에 다시 for문을 동작시켜 응용하는 방법에 대한 예시입니다. 1항과 동일한 상황에서 컨테이너 적재될 때마다 컨테이너가 안전하게 적재되었는지 확인하는 코드를 추가하였습니다. 

예시를 위한 추가된 전제내용
컨테이너를 적재 할 때마다 2회 안전 점검을 한다. 

 

추가된 코드 전체 내용 아래와 같습니다. 주의 사항으로 for문 내에서 다시 for문을 사용할 때 기준이 되는 변수는 동일한 이름을 사용할 수 없습니다. 

using System;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            int shippedContainer = 0;
            int numberOfRequired = 10;

            for(int i = 0; i < numberOfRequired; i++)
            {
                Console.WriteLine("적재 명령을 내린 횟수: " + i);

                Console.WriteLine("적재 명령");
                shippedContainer = shippedContainer + 1;

                Console.WriteLine("적재된 컨테이너 수: " + shippedContainer);

                for(int j = 0; j < 2; j++) //for문 안에 for문
                {
                    Console.WriteLine("컨테이너 안전 점검 수행!!");
                }

                Console.WriteLine("======================");
            }

            Console.ReadLine();
        }
    }
}
출력결과 확인하기 (중간 생략)
적재 명령을 내린 횟수: 0
적재 명령
적재된 컨테이너 수: 1
컨테이너 안전 점검 수행!!
컨테이너 안전 점검 수행!!
======================
적재 명령을 내린 횟수: 1
적재 명령
적재된 컨테이너 수: 2
컨테이너 안전 점검 수행!!
컨테이너 안전 점검 수행!!
======================

            -- 중간 생략 --

======================
적재 명령을 내린 횟수: 8
적재 명령
적재된 컨테이너 수: 9
컨테이너 안전 점검 수행!!
컨테이너 안전 점검 수행!!
======================
적재 명령을 내린 횟수: 9
적재 명령
적재된 컨테이너 수: 10
컨테이너 안전 점검 수행!!
컨테이너 안전 점검 수행!!
======================

 

응용하기 요점

  • for문 안에서도 다시 for문을 실행할 수 있습니다.
  • for문의 초기값에 사용되는 변수 이름을 for문 블록 안에서 다시 사용할 수 없습니다.
  • for문의 초기값은 0이 아닌 값을 사용할 수 있습니다.
  • for문의 증가 값에서 값을 뺄 수 있습니다.

 

 

3. 결론

대표적인 반복문인 for문의 문법과 간단한 예시를 통해 특징을 알아보았습니다. 이번 포스팅에서 다루지는 않았지만 for 반복문 안에서 이전 포스팅에서 배운 if구문 또한 사용할 수 있으며 이번 예제 코드에 if문법을 추가하여 코드를 작성해 보는 것을 추천드립니다. 다음 포스팅에서는 반복문(loop)에서 대표적으로 사용되는 while문에 대해서 알아보겠습니다. 

 

 

댓글