C# - 조건문 ( Conditional Statements )

2025. 9. 4. 17:15·C#

조건문 ( Conditional Statements )

프로그래밍에서 조건문(Conditional Statement) 은 특정 조건이 참(true)인지 거짓(false)인지에 따라 실행 흐름을 분기하는 구문이다.
C#에서는 대표적으로 if, else if, else, 그리고 switch 문을 통해 조건문을 작성할 수 있다.


if 문 (if statement)

if () 안의 내용이 true인 경우 코드 블럭 안의 내용을 실행하는 기본적인 조건문이다.

 
if (이 안이 참이면)
{
	// 여기를 실행해
}
else if (그게 아니라 이 안이 참이면)
{
	// 여기를 실행해
}
else // 다 아니면
{
	// 여기를 실행해
}

 

 

매우 간단하고 직관적인 구조이지만 프로그래밍을 한다면 평생 쓰이게 될 기능이니 잘 익혀두자.

 


switch 문 (switch statement)

여러 조건을 간결하게 처리할 때 유용하다.
switch는 변수의 값에 따라 실행할 분기(case)를 선택하는 방식이다.

switch(판단할 변수)
{
    case 이거일때:
        // 각종행동
        break;
    case 이거일떄:
        // 각종행동
        break;
    default:
        // 다 아닐때 기본적으로 실행할 행동
        break;
}

삼항 연산자 (Ternary Operator)

조건문을 간단히 한 줄로 표현할 수 있다.

이전 연산자 글에서 조건 연산자에 삼항 연산자가 있었다.

매우 편리한 기능이지만 함부로 남용 가독성이 좋지 않게 될 수 있으니 조심해서 사용하자.

 
(이 값이) ? 참이면 여기 실행 : 거짓이만 여기 실행;

 


 

if문과 switch문의 차이

if문과 switch문은 그럼 뭐가 다르고 어떤 차이가 있는지 조금 더 알아보자

 

기본적으로 if문에는 다양한 조건식을 넣을 수 있다.

if (x > 10 && x < 20 )

과 같은 형태로 말이다

 

하지만 switch문은 특정 값 하나를 여러 경우의 값과 비교할 때 사용한다

swith (x > 10 && x < 20) 이런 이상한 형태는 불가능하다.

 

 

그리고 성능 차이 또한 조금 존재한다

if문의 경우 조건식을 위에서부터 차례대로 검사하기 때문에 조건이 많을수록 검사 횟수가 증가한다.

일반적으로는 상관 없지만 조건이 무지막지하게 많은 경우 성능 차이가 날 수 있다.

 

반면 switch문은 내부적으로 jump table 또는 헤시 분기로 최적화되어 있다고 한다.

따라서 분기 수가 많을 때는 switch가 더 효율적일 수 있다.

 

하지만 이건 이론상 그렇다는 거고, 실제로는 대부분 I/O, 로직 처리 비용이 훨씬 커서 두 조건문의 성능 차이는 매우 미미한 수준이다. 따라서 가독성과 코드 구조를 기준으로, 혹은 취향대로 쓰면 된다.

 

 

  if문 switch문
조건 표현 복잡한 조건식(범위, 논리 연산 등) 가능 단일 값과 일치 여부만 비교 가능
가독성 조건이 많아지면 복잡해지고 길어짐 여러 분기를 깔끔하게 나열 가능
성능 분기 수가 많을수록 순차 비교로 약간 불리 컴파일러 최적화로 분기 수가 많아도 유리할 수 있음
사용 예시 범위 검사, 복잡한 논리 정수, 문자열, enum 값 분기
유지보수 다양한 상황을 유연하게 대응 가능 case 추가/삭제가 간단, 패턴이 명확함

 

 

개인적으로는 switch문 보다는 if문을 선호한다

switch 너무 문자도 길고 오타내기도 딱 좋다...

지금 이 글을 쓰면서도 swith swicth 별 이상한 오타를 몇 번이나 냈는지 모르겠다.

'C#' 카테고리의 다른 글

C# - 콘솔로 별 찍기 (삼각형 편)  (0) 2025.09.04
C# - 반복문 ( Loop Statements )  (0) 2025.09.04
C# - 형변환 ( type casting )  (0) 2025.09.04
C# - 연산자  (0) 2025.09.04
C# - 변수와 상수  (0) 2025.09.03
'C#' 카테고리의 다른 글
  • C# - 콘솔로 별 찍기 (삼각형 편)
  • C# - 반복문 ( Loop Statements )
  • C# - 형변환 ( type casting )
  • C# - 연산자
ellug
ellug
Web / App / Game Dev
  • ellug
    dev.ellug
    ellug
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • Javascript (React, Next) (1)
      • C# (66)
      • Graphics (1)
      • Unity (25)
      • 프로그래머스 (0)
        • Lv.0 (0)
        • Lv.1 (0)
        • Lv.2 (0)
        • Lv.3 (0)
      • AI Agent (0)
      • StableDiffusion (0)
      • ETC (1)
      • 잡담 (0)
      • 유머 (0)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    class
    네트워크
    list
    알고리즘
    Abstract
    스택
    최적화
    Queue
    struct
    터미널
    stack
    콘솔
    function
    Network
    delegate
    console
    자료구조
    클래스
    unity
    추상 클래스
    게임
    firebase
    C#
    Photon
    큐
    useState
    유니티
    interface
    inputsystem
    Design Pattern
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ellug
C# - 조건문 ( Conditional Statements )
상단으로

티스토리툴바