[C#] switch 제어문

2021. 7. 16. 00:00·etc/C#
목차
  1. switch 제어문의 원형

switch 제어문은 거의 모든 프로그래밍 언어에 들어있는 기초적인 제어문이다.

 

우리의 특별한 C#은 switch제어문에서 조금 더 특별한 기능을 제공한다.

 

switch 제어문의 원형

int num = 1;
switch(num)
{
	case 1:
    	Console.WriteLine("One");
        break;
    case 2:
    	Console.WriteLine("Two");
        break;
    case 3:
    case 4:
    	Console.WriteLine("Three or Four");
        break;
    default:
    	Console.WriteLine("Out Of Range");
        break;
}
One

이때 switch의 조건식으로는 모든 데이터 타입이 올 수 있다. 

 

모든 객체의 조상인 object도 넣을 수 있다.

 

object num = 4;
switch (num)
{
	case 1:
		Console.WriteLine("One");
		break;
	case 2:
		Console.WriteLine("Two");
		break;
	case 3:
	case 4:
		Console.WriteLine("Three or Four");
		break;
	default:
		Console.WriteLine("Out Of Range");
		break;
}
Three or Four

 

좀 더 특별한 것은 데이터의 형식으로도 분기가 가능하다는 점이다.

 

bool condition = false;
object obj = null;
if(condition)
	obj = 4;
else
	obj = 4.5f;
switch (obj)
{
    case int i:
    	Console.WriteLine($"{i} is int");
    	break;
    case float f:
    	Console.WriteLine($"{f} is float");
    	break;
    default:
    	Console.WriteLine("Out Of Range");
    	break;
}
4.5 is float

이때 주의할 점은 int i 처럼 데이터 형식 오른쪽에 식별자를 반드시 붙여줘야 한다.

 

마지막으로 case문에서도 when절을 이용해 분기 할 수 있는 예제를 보자.

 

bool condition = false;
object obj = null;
if(condition)
	obj = 4;
else
	obj = 4.5f;
switch (obj)
{
    case int i:
    	Console.WriteLine($"{i} is int");
    	break;
    case float f when f >= 0f:
    	Console.WriteLine($"{f} is positive float");
    	break;
    case float f:
    	Console.WriteLine($"{f} is negative float");
    	break;
    default:
    	Console.WriteLine("Out Of Range");
    	break;
}
4.5 is positive float

 

저작자표시 (새창열림)

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

[C#] Lambda Function Capture  (1) 2021.07.30
[C#] 문자열 보간(Interpolation)  (0) 2021.07.15
[C#] Property(프로퍼티), C#만의 특별한 기능  (0) 2021.07.13
[C#] Null-Safety를 지원하는 C#  (0) 2021.07.13
[C#] Lambda Expression(람다 식) 이란?  (0) 2021.07.12
  1. switch 제어문의 원형
'etc/C#' 카테고리의 다른 글
  • [C#] Lambda Function Capture
  • [C#] 문자열 보간(Interpolation)
  • [C#] Property(프로퍼티), C#만의 특별한 기능
  • [C#] Null-Safety를 지원하는 C#
imsongkk
imsongkk
이것저것 적어보는 개발 블로그
  • imsongkk
    이것저것
    imsongkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (81)
      • 일상 (1)
      • Infra (21)
        • AWS (3)
        • Docker (8)
        • Kubernetes (9)
        • Terraform (1)
      • Trouble Shooting (9)
      • Back-End (18)
        • Spring Boot (2)
        • JPA (7)
        • HTTP 기본 (4)
        • DDD (3)
      • 소마 (4)
      • Programming (7)
        • 디자인 패턴 (7)
      • etc (19)
        • Unity (4)
        • Node.js (2)
        • React (1)
        • 리액트를 다루는 기술 (2)
        • C# (6)
        • Language (0)
        • Firebase (2)
        • 알고리즘 (1)
        • CS (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Terraform #테라폼 #IaC #AWS CLI
    Pull
    firestore
    Google Analytics
    포트
    소프트웨어 마에스트로 #소마 #SWM #소프트웨어 마에스트로 14기
    clone
    EC2
    Push
    3000
    Repository
    Firebase
    Firebase Analytics
    Private
    Git
    VPC #Subnet #NAT #Region #AZ #IGW
    도메인
    React
    8080
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
imsongkk
[C#] switch 제어문
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.