C#/1. 데이터 보관과 가공 & 코드의 흐름제어

연산자(증가/감소연산자, 조건연산자), 반복문, 점프문

DOlpa_GB 2025. 3. 12. 22:30

코드의 가장 기초라고 볼 수 있는 연산자. 어디까지나 이건 내 공부용 일지이기 때문에

모든 기능을 전부 들여다 볼 생각은 없고 너무 당연하거나 굳이 이후에 찾아보지 않을것 같은 기능은 생략하겠다

 

<증가/감소 연산자>

 

평소 조금 헷갈리던 부분이었다

우리가 흔히 보던 a++, ++a, --a, a-- 기능들이 전부 증가/감소 연산자이다

하지만 여기서 헷갈리는건 바로 연산자를 변수의 앞에 사용하느냐 뒤에 사용하느냐인데 

 

뒤에 사용하면 문장의 실행이 끝난 후 변수의 값이 변경되며

앞에 사용하면 변수의 값이 변경된뒤 문장의 실행이 끝나게 된다

 

세번째 줄이 가장 중요하다. 값이 12인 상태에서 a--가 되었지만 

Console.WriteLine을 실행한뒤에 변수의 값이 빠지기에 여전히 12로 출력된 뒤에 값에 변화가 오게 된다

 

<조건 연산자>

 

알아두면 굉장히 유용하게 쓸 수 있는 연산자이다. 

 

조건식 ? 참일때의 값 : 거짓일때의 값

 

int a = 30;

string result = a == 30 ? "삼십" : "삼십 아님";

 

먄약 a의 값이 30이라면 result 변수 안에 "삼십" 혹은 "삼십 아님"의 값 둘 중 하나가 들어가는것이다

 

 

 

 

 

------------------------------------

 

 

 

 

 

 

 

연산자는 이정도이다. 사실 그 이외에 것들은 굳이 짚고 넘어가지 않아도 될것 같다.

그 다음은 코드의 흐름제어. 정확히는 분기문, 반복문, 점프문에 대해서 짚고 넘어가보도록 하자

 

<분기문>

 

분기문은 프로그램의 흐름을 조건에 따라 여러 갈래로 나누는 흐름 제어 구문이다

가장 대표적으로는 if, switch문이 있다

 

1. if문

 

사실 너무 많이 사용하는거라 간단하게 숫자 하나를 받아

0보다 큰 짝수인지 홀수인지, 혹은 0보다 작은지를 구별하는 코드를 하나 만들어보겠다

 

이렇게 if문의 중첩도 가능하다는거~ 이미 알고 있는 내용이니 넘어가자

 

 

2. switch 문

 

 

 

3. switch 식

 

이건 처음 알게 된건데 switch 식이라는것이 있다. 위에 설명한 switch 문과 뭐가 다른것이냐

 

switch 식은 어떤 계산을 해서 결과를 내놓는다

switch 문은 어떤 일을 한다. 그게 결과를 내던 그렇지 않던간에.

 

그렇기 때문에 어떤 작업에 분기가 필요할때는 switch문을 사용하고, 

분기를 거쳐 값을 내야하는 경우에는 switch식을 사용하는게 적합하다

 

아주 평범한 switch문. 분기를 수행하지만 모든 절에서 하는건 grade변수안에 등급별 학점을 저장하는것뿐

이건 switch 식을 이용하여 더 간단하게 만들 수 있다

 

break 필요없고, default는 _ 로 대체한다. 훨씬 간편하게 작성할 수 있다

 

 

 

4. when

 

switch 식에는 when절을 이용해 추가적인 분기 처리가 가능하다

예를들어 조건을 한가지 더 추가해 bool repeared가 참이라면 아무리 점수가 높아도 B+ 등급을 받도록 할 수 있다

 

이런 식으로 좀 더 코드를 보완해서 만들수도 있다

직접 repeated 여부를 y나 n으로 결정하게 하는것이다

 

<반복문>

 

반복문은 말 그대로 특정조건을 만족할때까지 코드 또는 코드블록을 반복해서 실행하도록 하는 문장이다

대표적으로는 for, while문이 있다

 

 

1. while 문

 

while ( 조건식 : 참이면 아래 블록을 진행)

{

           반복 실행할 코드

}

 

 

2. do ~while 문

 

while 문과 거의 유사하지만 while문은 조건식을 평가한 후 그 결과가 참이면 코드를 실행하지만

do~while 문은 우선 코드를 한번 실행한다는 점에서 다르다

한가지 더 차이점이 있다면 무조건 조건식 뒤에 세미콜론을 붙여줘야 한다는것!

 

do

{

          반복할 코드

}

while(조건식);

 

 

 

3. for문

 

가장 많이 쓰는 반복문 중 하나로 while 처럼 조건이 참인동안 반복하는건 동일하나 조금 더 정교한 조절을 할 수 있다

 

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

{

           반복실행할 코드

}

 

for (int i =0; i<5; i++)

{

     Console.WriteLine(i);

}

 

for문의 예시이고

 

이런 중첩 for문도 가능하다. 이미 아는 내용이니 넘어가자

 

 

 

4. foreach 문

 

foreach문은 배열을 순회하며 각 데이터 요소에 차례대로 접근하도록 해준다

편리하게도 배열의 끝에 도달하면 자동으로 반복이 종료된다

 

foreach(데이터형식 변수명 in 배열 또는 컬렉션)

{

            코드블록

}

 

 

 

int[] arr = new int[]{0,1,2,3,4};

 

foreach(int a in arr)

{

     Console.WriteLine(a);

}

 

예시는 이런식이다.

 

 

조금 번외이긴 하지만

for( ; ;)

while(true)

등으로 코드를 무한반복 하는것이 가능하다.... 어디에 쓰이는지는 잘 모르겠다

 

 

 

 

<점프문>

 

위에서 살펴본 흐름 제어들은 흐름을 분기하거나 반복해도 흐름을 끊어버리는 기능은 없었다

이번에 볼 점프문은 흐름을 끊고 프로그램의 실행 위치를 원하는곳으로 도약시킬 수 있다

 

1. break 문

 

이미 switch문에서 봤겠지만 break문은 현재 실행중인 반복문이나 switch문의 실행을 중단할 때 사용한다

 

int i = 0;

 

while(i >= 0)

{

       if( i == 10 )

                break;

      Console.WriteLine( i++ );

}

 

Console.WriteLine("Prison Break");

 

원래 while문만 보면 i값은 계속 더해지니 무한반복이 될뻔 했으나

i가 10이 되는순간 break문이 발동되어 빠져나갈수 있는것이다

 

 

대답으로 아니오를 들을때까지 무한반복 하는 코드. 이런식으로 사용 가능하다

 

 

 

2.  Continue

 

break문과 달리 continue문은 한회 건너 뛰어 반복을 계속 수행하게 하는 기능을 한다

 

for(int i=0; i<5; i++)

{

    if( i == 3 )

          continue;    // i가 3일 경우 실행중인 반복을 건너뜀

    Console.WriteLine(i);

}

 

쓰는거나 안쓰는거나 무슨 차이인가 싶겠지만 사용하는것이 훨씬 더 가독성이 좋다고 한다

 

1~10까지의 숫자 중 홀수만 구하는 코드

 

3. goto문

지금까지 봤던것들 중 가장 생소한 goto문. 우선 사용형식부터 보도록 하자

 

goto 레이블;

 

레이블 :

        // 이어지는 코드

 

 

여기서 레이블이 무엇이냐. 이건 변수하고 좀 다른데

레이블 : 코드안의 위치를 나타내는 표지판 같은 존재이다

 

      for (int i = 0; i < 100; i++)
      {
          for (int j = 0; j < 200; j++)
          {
              for (int k = 0; k < 50; k++)
              {
                  if (x == 0 && y == 1)
                      goto EXIT;
              }
          }
      }
  EXIT:
      Console.WriteLine("Exit");

 

사실 거의 쓰일일이 없는데다 코드의 흐름을 자주 끊어 코드를 잃기 어렵게 만들어 주로 쓰지 않는다고 한다

하지만 위 코드처럼 중첩된 반복문을 빠져나오는데는 효과적이라 사용한다고 한다

 

 

반응형