조건에 따라 실행 흐름을 다르게 제어할 때 사용하는 문장
조건식의 true / false 여부에 따라 실행할 블럭을 결정하는 조건문.
if 블럭 실행else 블럭 실행int a = 10;
if (a == 10)
{
// 조건식이 참일 때 실행되는 블럭
Console.WriteLine("조건식이 참입니다.");
}
else
{
// 조건식이 거짓일 때 실행되는 블럭
Console.WriteLine("조건식이 거짓입니다.");
}
int score = 100;
if (score >= 90)
{
Console.WriteLine("점수가 90점 이상입니다.");
}
if (score >= 60)
{
Console.WriteLine("점수가 60점 이상입니다.");
}
if (score >= 30)
{
Console.WriteLine("점수가 30점 이상입니다.");
}
📌 출력 결과:
점수가 90점 이상입니다.
점수가 60점 이상입니다.
점수가 30점 이상입니다.
➡️ if만 사용하면 모든 조건을 순차적으로 검사하기 때문에
중복 출력이 발생할 수 있음.
하나만 실행되길 원할 경우 → else if를 사용
조건을 순차적으로 검사하며, 처음 참인 조건의 블럭만 실행됨
int score = 100;
if (score >= 90)
{
Console.WriteLine("점수가 90점 이상입니다.");
}
else if (score >= 60)
{
Console.WriteLine("점수가 60점 이상입니다.");
}
else
{
Console.WriteLine("점수가 매우 낮습니다.");
}
if~else보다 조건 값이 명확하게 분기될 때 유리case마다 break 필수 (C#은 Fall-through 미지원)switch (조건값)
{
case 특정값1:
// 실행할 코드
break;
case 특정값2:
// 실행할 코드
break;
case 특정값3:
// 실행할 코드
break;
default:
// 모든 case에 해당하지 않을 경우
break;
}
break 생략 시 다음 case까지 실행 (Fall-through 지원)case에 break 없으면 컴파일 에러 발생goto case 또는 goto default로 분기 가능string input;
int num;
Console.WriteLine("숫자 (1 ~ 3) 를 입력하세요: ");
input = Console.ReadLine();
int.TryParse(input, out num);
switch (num)
{
case 1:
Console.WriteLine("1 입니다.");
break;
case 2:
Console.WriteLine("2 입니다.");
break;
case 3:
Console.WriteLine("3 입니다.");
break;
default:
Console.WriteLine("예외사항입니다.");
break;
}