본문으로 바로가기

C# 반복문(루프문)다루기 #7 메인사진

 

안녕하세요. 애드라이프 입니다.

이전 포스팅에서 조건문(분기문)에 대해서 다뤘는데요.

이제 if, else, else if , switch case문은 다들 아시겠죠?

혹시 이전 포스팅이 궁금하신 분들이 있다면 아래 링크 참고해주세요.

C# 조건문(분기문) 다루기 #6 <-링크

 

C# 프로그램 시작하기 - 조건문(분기문) 다루기 #6

안녕하세요. 애드라이프 입니다. 2주째 C# 관련포스팅을 작성하고 있습니다! 조금씩 조회수가 올라가고 있는걸 보니 뿌듯하네요. 이전 포스팅에서 엄청나게 많은 연산자를 다루었습니다. 종류만해도 너무너무 많..

increase-life.tistory.com

 

이번 포스팅에서는 반복문(루프문)에 대해서 알아보겠습니다.

 

먼저 while문입니다.

 

◆ 기본구조

while( 조건문 )   

{                      

      반복실행 할 코드

}                     

 

다들 유능하시니!! 아시겠지만

제가 기본구조부터 소개한 이유는

최근에 제 주변에 있는 사람이

while(1), while(0)만 알고 쓰더군요..

충격이였습니다.!!

 

혹시나 그런분이 생길까 노파심에 소개해드립니다.

 

실행 조건은 조건문이 참인동안 반복실행입니다!

말인 즉슨 조건문이 계속 참이면 무한으로 반복하겠죠?

 

자! 그럼 이해를 돕기위한 간단한 프로그램을 보겠습니다.

using static System.Console;

namespace while_do_while
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 5;
            int y = 5;
            while (x>0)
            {
                WriteLine($"x = {x--}");
            }
            while (y > 0)
            {
                WriteLine("y = {0}", y--);
            }
        }
    }
}

 

간단히 설명하자면 5로 지정된 변수를 1씩 빼면서

콘솔창에 결과를 뿌려주는데 그 작업을 변수가 0보다 크다면

계속 반복해라!! 라는 뜻의 코드입니다.

 

하지만 자세히 보면 x와 y만 다를뿐 같은 결과를 

반환하는  두개의  while문이 있습니다.

 

WriteLine($"x = {x--}");
   WriteLine("y = {0}", y--); 

 

이 두줄의 차이점을 설명드리고자 프로그램을 작성했습니다.

앞서 설명드린바와 같이 결과는 똑같습니다.

C# 반복문 간단한 프로그램 결과

똑같죠?

 

 

두번째 줄인
   WriteLine("y = {0}", y--); 이 형식은 제 포스팅에서

계속 쓰여 왔기때문에 아실꺼라 생각합니다.

 

다만, WriteLine($"x = {x--}"); 이 부분이 생소한데요.

여기서 $는 문자열 보간이라는 역할을 수행합니다.

현재 포스팅에서는 자세한 내용은 다루지 않겠습니다.

 

$ 문자를 사용하므로서 뒤에 ,(콤마)구분해서 쓰였던 인자가

{ }(중괄호) 안으로 들어왔습니다. 쓰는 방식만 차이가 있을뿐

위 두줄은 같은 코드라고 보시면 됩니다.

 

두가지 유형중 자기가 쓰기 편한 형태를 쓰면됩니다.

저는 독자들의 선택의 폭을 넓혀 드리고자 소개드렸습니다 :)

 

이제 do while문입니다.

 

◆ 기본구조

do                  

{                      

      반복실행 할 코드

}                     

  while(  조건식 );

위에서 봤던 그냥 while문과는 구조가 차이나죠?

whlie문과의 큰 차이점은 2가지입니다.

 

첫번째 : do{ }부분은 처음 한번은 조건과 상관없이 무조건 실행

 

두번째 : 구문 가장 끝에 ;(세미콜론)으로 마무리 됨

 

응용을 어떻게 하느냐는 프로그머의 역활이지만

간단하게 예를 들어보겠습니다.

using static System.Console;

namespace while_do_while
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 5;
            do
            {
                WriteLine($"x = {x--}");
            }
            while (x > 10);
        }
    }
}

while의 조건식이 x가 10보다 클때입니다.

하지만 x는 처음부터 10보다 작은 5의 값을 가지고 있습니다.

단순 while문이였다면 아예 실행조차 않되었겠지만

do while문은 최초 한번은 조건과 상관없이 실행되므로

다음과 같은 결과를 반환합니다.

 

C# do while문 결과

적재적소에 잘 응용만 한다면 참 유용한 구문입니다.

그럼 여기까지 while문에 대한 내용은 마무리하고

 

다음은 for문 입니다.

 

앞서 봤던 while과 크게 다르지 않기 때문에

간단히 설명하겠습니다.

 

◆ 기본구조

for( 초기화; 조건식; 반복식; )   

{                                        

      반복실행 할 코드        

}                                       

while문과 같은 반복문이지만

좀 더 세밀한 제어가 가능한 구문이 for문입니다.

 

이해를 돕기위해 구체적인 예시를 들어보겠습니다.

for(int x=0; x<10; x++)

{                             

WriteLine(x);

}                             

위 코드는 x는 0부터 10보다 작을때까지 1씩 증가 할때마다

WriteLine메소드를 통해 자신의 값을 반환하는 반복문입니다.

 

여기서 잠깐 설명드리고 싶은 부분이있습니다.

이전 포스팅인 조건문에서 중첩if문에 대한 주의를 

말씀드렸었는데요. 이번에도 중첩 반복문에 대한 주의를 드립니다.

 

역시나 반복문을 중첩으로 사용한다고해서 잘못된 것은 아닙니다.

다만, 최대한 사용을 자체하는것이 좋다는 이야기를 하고 싶은겁니다.

만약 어쩔수 없이 중첩해서 사용해야한다면 세밀한 제어가 가능한

for문을 이용하여 중첩문을 구성하는것을 추천드립니다.

 

마지막 foreach문 입니다.

 

해당구문은 지금 자세히 배우기에는 이해하기 힘든 부분이 있기때문에

foreach문은 이런거구나!! 정도만 알고 가도록 하겠습니다.

그래도 미리 알고 계신분들도 있으니 설명은 하겠습니다.

 

우선 foreach문을 설명하기전에 알아야 할 개념중 하나가 배열입니다.

배열이란 변수와는 다르게 1:1이 아닌 1: 다수가 가능한 개념의 요소입니다.

하나의 배열에 여러개의 값을 넣을 수 있다는 뜻입니다.

 

우선 배열의 사용방법부터 설명드리면

선언은 int[ ] 배열이름 = new int[ ] {초기화 부분}; 입니다.

예를들어 int [ ] a = new int [ ] { 1 , 2 , 3};이라고 쓰면

a라는 이름을 가진 배열을 생성하고 그 배열은 

3개의 방을 가지고 각각 1,2,3 이라는 값을 소유하고 있는 개념입니다.

 

여기서 중요한 foreach에 대한 역할은 배열의 각요소를 순서대로

접근할수 있도록 해주는 부분입니다.

 

foreach문 사용법은 간단합니다.

foreach(데이터형식 변수명 in 배열)

 

이해를 돕기위해 간단한 프로그램을 보겠습니다.

using static System.Console;

namespace loop_foreach
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = new int[]{ 1, 2, 3 };
            foreach (int i in a)
            {
                WriteLine(i);
            }
        }
    }
}

 

a라는 배열에 1,2,3이 들어있고

이를 foreach로 순서대로 접근하여 

WriteLine메소드로 콘솔에 표시하는 코드입니다.

 

C# foreach문 결과

당연히 결과는 배열안에 있는 모든 값이

순서대로 뿌려지는 화면을 볼 수있죠!!

foreach문은 여기서는 이정도만 다르겠습니다.

 

별개 내용중 하나입니다만

위에서 무한 반복문에 대한 언급을 잠깐했습니다.

당연히 조건문이 거짖이 되지 않으면 무한반복입니다.

 

하지만 그런 고민없이 처음부터 무한반복문(루프문)을

사용하고 싶으신 분들을 위해서 알려드립니다.

 

for(;;)

while(ture)

 

위와 같이 쓰시면 무한반복문을 사용할 수 있습니다. :)

 

여기까지해서 반복문(루프문)에 대해 알아보았습니다.

문의 사항이 있으시면 언제든지 댓글로 남겨주세요.!!

다음에는 더욱 유익한 포스팅으로 돌아오겠습니다.

by 애드라이프