일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C# delegate
- HTML
- Algorithm
- git
- c# 추상 클래스
- Data Structure
- 포인터
- 구조체
- 유니티
- c언어
- c# 윈폼
- vim
- c# winform
- Flutter
- Houdini
- 도커
- Unity
- github
- C++
- docker
- jupyter lab
- Python
- c#
- dart 언어
- 다트 언어
- C언어 포인터
- 플러터
- 깃
- jupyter
- gitlab
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