일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C# delegate
- vim
- c#
- jupyter lab
- jupyter
- 도커
- c# winform
- 다트 언어
- gitlab
- 구조체
- dart 언어
- git
- Algorithm
- c# 윈폼
- C++
- Houdini
- c언어
- c# 추상 클래스
- docker
- Data Structure
- Flutter
- 플러터
- 깃
- Unity
- 포인터
- HTML
- github
- 유니티
- C언어 포인터
- Python
Archives
- Today
- Total
nomad-programmer
[Programming/C#] switch 문에서 데이터 형식에 따른 조건 본문
정수와 문자열 형식 외에도, C# 7.0부터 switch문에 데이터 형식을 조건으로 사용할 수 있게 되었다.
데이터 형식에 따라 분기할 때에는 case 절에서 데이터 형식 옆에 반드시 식별자를 붙여줘야 한다. 선언한 식별자는 case 절 안에서 사용할 수 있다.
또한 when 절을 이용하여 추가적인 조건 검사를 수행할 수 있다. when은 case 절에 붙여 사용한다.
when 절을 if 문과 비슷하다고 생각하면 된다.
using System;
namespace CSharpExam
{
class SwitchExample
{
static int Main(string[] args)
{
object obj = null;
string s = Console.ReadLine();
if (int.TryParse(s, out int out_i))
obj = out_i;
else if (float.TryParse(s, out float out_f))
obj = out_f;
else
obj = s;
switch (obj)
{
case int i:
Console.WriteLine($"{i}는 int");
break;
// obj가 float형식이며 0이상인 경우
case float f when f >= 0:
Console.WriteLine($"{f}는 float이며 양수");
break;
// obj가 float형식이며 0보다 작은 경우
case float f:
Console.WriteLine($"{f}는 float이며 음수");
break;
default:
Console.WriteLine($"{obj}는 모르는 형식");
break;
}
return 0;
}
}
}
/* 결과
3.14
3.14는 float이며 양수
*/
'Programming > C#' 카테고리의 다른 글
[Programming/C#] 참조자 (0) | 2020.09.07 |
---|---|
[Programming/C#] goto 문 (0) | 2020.09.07 |
[Programming/C#] null 병합 연산자 (0) | 2020.09.06 |
[Programming/C#] null 조건부 연산자 (0) | 2020.09.06 |
[Programming/C#] 날짜 및 시간 서식화 (0) | 2020.09.06 |
Comments