if ( 조건식 ) {
문장
} else if ( 조건식 ) {
문장
} else {
문장
}
조건식에서 문자열 형식을 지원한다.
break문 대신 goto, return을 사용할 수 있는 경우도 있다.
switch ( 조건식 ) {
case 상수1:
문장
break;
case 상수2:
문장
break;
default:
break;
}
아래와 같이 조건식에 들어온 변수의 타입에 따라 분기할 수도 있다.
// 입력이 "25"인 경우, 출력값은 "int <= 30"
object parsed = null;
string raw = Console.ReadLine();
if(int.TryParse(raw, out int outi)) {
parsed = outi;
} else if (float.TryParse(raw, out float outf)) {
parsed = outf;
} else {
parsed = raw;
}
switch (parsed)
{
case float f:
Console.WriteLine("float");
break;
case int i when i > 30:
Console.WriteLine("int > 30");
break;
case int i:
Console.WriteLine("int <= 30");
break;
default:
Console.WriteLine("default");
break;
}
아래 코드는, 바로 위 코드와 같은 동작을 한다.
:
는 =>
로, default
는 _
로 바뀐다.
object parsed = null;
string raw = Console.ReadLine();
if(int.TryParse(raw, out int outi)) {
parsed = outi;
} else if (float.TryParse(raw, out float outf)) {
parsed = outf;
} else {
parsed = raw;
}
string result = parsed switch {
float f => "float",
int i when i>30 => "int > 30",
int i => "int <= 30",
_ => "default"
};
Console.WriteLine(result);
int a = 53;
while (a < 60)
{
Console.WriteLine(a);
a++;
}
int a = 53;
do
{
a++;
Console.WriteLine(a);
} while (a < 60);
for(int i = 53; i<5353; i++){
Console.WriteLine(i);
}
int[] arr = new int[] {1, 2, 3};
foreach (int el in arr)
{
Console.WriteLine(el);
}
for(int i = 53; i<5353; i++){
if(i==530){
break;
}
}
for(int i = 53; i<5353; i++){
continue;
}
goto itisLabel;
while (true) { }
itisLabel:;