190730 - 2 - 흐름제어
C# switch문은 정수형식과 문자열 형식 두 가지를 지원한다.
정수와 문자열 형식 외에도 데이터 형식을 조건으로 사용할 수 있다. (C# 7.0 이상)
static void Main(string[] args)
{
object obj = 123; // boxing
switch (obj)
{
case int i: // 데이터 형식 사용시, 형식 옆에 식별자를 붙여주어야함. (case절 내부에서 사용가능)
Console.WriteLine("int:"+i);
break;
case float f:
Console.WriteLine("float:" + f);
break;
default:
break;
}
}
int:123
switch
static void 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;
case float f:
Console.WriteLine($"{f}는 float 형식입니다.");
break;
default:
Console.WriteLine($"{obj}는 모르는 형식입니다.");
break;
}
}
switch (obj)
{
case int i:
Console.WriteLine($"{i}는 int 형식입니다.");
break;
case float f when f < 0: //데이터 형식에 따라 분기하는 경우 when 사용가능
Console.WriteLine($"{f}는 float 형식이며 음수입니다.");
break;
case float f:
Console.WriteLine($"{f}는 float 형식이며 양수입니다.");
break;
default:
Console.WriteLine($"{obj}는 모르는 형식입니다.");
break;
}
static void Main(string[] args)
{
string s = "Good Morning Good Morning";
Console.WriteLine($"{s.IndexOf('G')}");
Console.WriteLine($"{s.IndexOf("Good")}");
Console.WriteLine($"{s.IndexOf('M')}");
Console.WriteLine($"{s.IndexOf("Morning")}");
}
0
0
5
5
'C#(.NET)' 카테고리의 다른 글
[C#] 클래스 (base, sealed, 확장 매서드, 튜플) (0) | 2020.06.14 |
---|---|
[c#] 매소드 (pass by reference, 가변길이 매개변수 args, local 함수) (0) | 2020.06.13 |
[C#] ?? Null 병합 연산자 (0) | 2020.06.12 |
[C#] 흐름제어 (foreach, in, Select, {0}, {1}) (0) | 2020.06.12 |
[C#] 데이터 보관하기-2(최고 조상인 Object, 박싱, 언박싱, 형변환, var) (0) | 2020.06.12 |