Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개임 게발

[C#] 조건문 - if, else, else if, switch case, &&, || 본문

개념 정리

[C#] 조건문 - if, else, else if, switch case, &&, ||

lhgenol 2025. 2. 5. 01:57

if

if 구성

   if ( 조건 ) 
   {
        실행 내용
   }
  • if문은 조건을 체크해서 만족하면 중괄호 안에 있는 내용을 실행시킴
  • 조건을 만족하지 않으면 실행하지 않음
  • 조건이라 함은 논리 연산으로 계산된 게 맞는지 확인하는 내용

예제

  // 3이 1보다 큰지 체크  - O
  if(3 > 1)
  {
          // 조건을 만족했기에 실행
          Console.WriteLine("3은 1보다 크다!");
  }
  // 0이 1보다 큰지 체크  - X
  if(0 > 1)
  {        
          // 조건을 만족하지 못해 실행되지 않음
          Console.WriteLine("0은 1보다 크다!");
  }

else if

else if 구성

   if ( 조건 )
   {

   }
   else  if (추가 조건) 
   {
        실행 내용
   }

설명

  • if문 밑에 따라 붙는다.
  • if문을 만족하지 못했을 때 다시 조건을 체크함
  • if와 else if가 있을 때 둘 중 하나만 실행됨

예제

  int x = 20;

  // x가 10보다 큰지 체크  - O
  if(x > 10)
  {
          // 조건이 맞아 if문 안의 내용을 실행
          Console.WriteLine("x는 10보다 크다!");
  }
  else if(x > 5)
  {
          Console.WriteLine("x는 10 보다는 작지만 5보다는 크다");
  }
  int x = 8;

  // x가 10보다 큰지 체크  - X
  if(x > 10)
  {
          Console.WriteLine("x는 10보다 크다!");
  }
  else if(x > 5) 
  {
          // 조건이 맞아 else if문 안의 내용을 실행
          Console.WriteLine("x는 10 보다는 작지만 5보다는 크다");
  }

else

else 구성

   if ( 조건 )
   {

   }
   else   
   {
        실행 내용
   }

설명

  • if문 밑에 따라 붙음
  • if문을 만족하지 못했을 때 실행함
  • if와 else가 있을 때 둘 중 하나만 실행됨

예제

  // 3이 1보다 큰지 체크  - O
  if(3 > 1)
  {
          // 조건이 맞아 if문 안의 내용을 실행
          Console.WriteLine("3은 1보다 크다!");
  }
  else
  {
          Console.WriteLine("틀렸습니다!!");
  }
  // 0이 1보다 큰지 체크  - X
  if(0 > 1)
  {        
          Console.WriteLine("0은 1보다 크다!");
  }
  else
  {
          // 틀렸기 떄문에 else가 실행됨
          Console.WriteLine("틀렸습니다!!");
  }

if, else if, else 같이 쓰기

세 가지 조건문 같이 쓰기

   if ( 조건 )
   {
        실행 내용
   }
   else if (추가 조건)
   {
        실행 내용
   }
   else 
   {
        실행 내용
   }
   if ( 조건 )
   {
        실행 내용
   }
   else  if (추가 조건)
   {
        실행 내용
   }
   else  if (추가 조건)  ←
   {
        실행 내용
   }
   else 
   {
        실행 내용
   }
  • else if는 여러 번 사용할 수 있음

설명

  • 여러 조건문들이 있을 때 모든 조건 중 단 하나만 실행됨
  • 각자 실행시키고 싶을 때는 그냥 if문을 여러 개 사용한다.

예제

  int score = 100;

  if(score > 90)
  {
          // 실행
          Console.WriteLine("성적이 매우 우수합니다!!!!!");
  }
  else if(score > 70)
  {
          Console.WriteLine("성적이 우수합니다.");
  }
  else if(score > 50)
  {
          Console.WriteLine("합격은 했지만 좀 더 노력하세요");
  }
  else
  {
          Debug.Log("불합격입니다.");
  }
  int score = 60;

  if(score > 90)
  {
          Console.WriteLine("성적이 매우 우수합니다!!!!!");
  }
  else if(score > 70)
  {
          Console.WriteLine("성적이 우수합니다.");
  }
  else if(score > 50)
  {
          // 실행
          Console.WriteLine("합격은 했지만 좀 더 노력하세요");
  }
  else
  {
          Console.WriteLine("불합격입니다.");
  }

switch case

구성

   switch (조건 변수)
   {
        case 상수조건1 :
            실행내용
            break;

        case 상수조건2 :
            실행내용
            break;

        case 상수조건3 :
            실행내용
            break;
   }

설명

  • 변수 한 개를 가지고 그 변수가 무엇인지 확인하는 조건문
  • if ~ else if로 완벽하게 대체할 수 있지만 한 가지 조건을 더 정교하게 체크할 수 있다.
  • case에 들어가는 조건은 고정된 상수여야 한다.
    • 1, 2, 3 : 고정된 값 O
    • x > 10 : 변할 수 있는 값 X
    • int a 등 새로운 변수 활용 X
  • case에 들어가는 조건문은 중복되면 안됨

예시

  • 변수를 한 가지 두고 그 변수에 의해 저녁 메뉴를 고르는 동작을 한다고 가정함
  int x = 5;

  switch(x)
  {
      case 1:
          Console.WriteLine("치킨을 주문하자.");
          break;

      case 2:
          Console.WriteLine("피자를 주문하자.");
          break;

      default:
          Console.WriteLine("마라탕을 주문하자.");
          break;
  }

논리 연산 - 조건부 논리 연산자

  • 조건부 논리 연산자는 같음, 비교와는 다르게 조금 일반적이지 않은 판단을 하는 연산자.
  • &&(AND 연산자)와 ||(OR 연산자)가 있다.

&& (AND 연산자)

  • 두 가지 조건이 모두 만족하는가?

예제

  • 제가 친구 A, B랑 식사 약속이 있습니다. 제가 먼저 약속 장소에 먼저 도착해서 기다리고 있습니다. 저는 친구 A랑 B가 모두 도착하면 식당으로 이동할 것입니다.
  bool isArrive_A = true;   // 친구 A는 도착했다!
  bool isArrive_B = false;  // 친구 B는 도착하지 않았다!

  // AND 연산자 && 사용
  if(isArrive_A && isArrive_B)
  {
        Console.WriteLine("식당으로 이동");
  }
  else
  {
          Console.WriteLine("친구를 기다리자");  <- A는 true지만 B는 false
  }                                             A와 B가 모두 true가 아니므로 else 실행
  bool isArrive_A = true;   // 친구 A는 도착했다!
  bool isArrive_B = true;   // 친구 B도 도착했다!

  // AND 연산자 && 사용
  if(isArrive_A && isArrive_B)
  {
        Console.WriteLine("식당으로 이동");     <- A는 true B도 true
  }                                            A와 B가 모두 true이기 때문에 if 실행
  else
  {
          Console.WriteLine("친구를 기다리자");  
  }    

|| (OR 연산자)

  • 두 가지 조건 중 하나라도 만족하는가?

예제

  • 제가 친구 A, B랑 식사 약속이 있습니다. 제가 먼저 약속 장소에 먼저 도착해서 기다리고 있습니다. 저는 친구 A랑 B 둘 중 한 명이라도 오면 식당으로 이동할 것입니다.
  bool isArrive_A = true;   // 친구 A는 도착했다!
  bool isArrive_B = false;  // 친구 B는 도착하지 않았다!

  // OR 연산자 || 사용
  if(isArrive_A || isArrive_B)
  {
        Console.WriteLine("식당으로 이동");     <- A는 true B는 false
  }                                            둘 중 한 명이라도 왔으니 if 실행
  else
  {
          Console.WriteLine("친구를 기다리자"); 
  } 
  bool isArrive_A = true;   // 친구 A는 도착했다!
  bool isArrive_B = true;   // 친구 B도 도착했다!

  // OR 연산자 || 사용
  if(isArrive_A || isArrive_B)
  {
        Console.WriteLine("식당으로 이동");     <- A는 true B도 true
  }                                            둘 중 한 명이라도 왔으니 if 실행
  else
  {
          Console.WriteLine("친구를 기다리자");  
  }    

자주 하는 실수들 ('='과 '==')

  if( 조건 )   ←
  {
      실행 내용
  }
  • if문을 사용할 때 괄호 안에는 bool이 들어가게 됨
  • 이때 조건이 같은지 체크할 때 =를 사용하는 실수를 하기도 함
  int num = 10;
  if(num = 10)  X   '=' 은 데이터를 저장할때 쓰는 연산자
  {
  }
  int num = 10;
  if(num == 10)  O  '==' 이 데이터가 같은지 체크하는 연산자
  {
  }
  • 조건을 체크할 때는 a = 10을 사용하면 안됨
  • a == 10을 사용해야 됨