조건문

강성현
∙∙조회 19
조건문

 

조건문이란?

주어진 조건을 통해 참과 거짓으로 코드의 실행 흐름을 갈라놓는 역할입니다.


1. if

if는 조건이 참일때만 if블록 내부를 실행합니다.
거짓이면 해당 블록을 통째로 건너뜁니다.

csharp
if (isAbokado ==  true)
{ // 조건이 충족되면 이 곳의 코드 실행
    Console.WriteLine("우유를 6개 구매합니다.");
}

1-1) else, else if

if 조건이 거짓일때 실행되는 분기점을 설정할 때 사용됩니다.
else는 if의 조건이 거짓일때 실행되며, 조건을 따로 설정할 수 없습니다. else if는 분기점이 3개 이상일때 사용하며, 조건을 설정할 수 있습니다.

csharp
int a = 1;
int b = 1;

if (a > b)
{
    Console.WriteLine("a가 b보다 큽니다.");
}
else if (a == b)
{
	Console.WriteLine("a와 b의 값이 동일합니다.");
}
else
{
    Console.WriteLine("a가 b보다 작습니다.");
}

출력 : "a와 b의 값이 동일합니다."

 

 


1-2) 중첩 조건문

조건문의 블록 안에 다시 조건문을 넣을 수 있습니다. 앞 판단이 통과해야 다음 판단이 의미를 갖는 단계일 때 사용합니다.

csharp
if (level >= 5)
{
	Console.WriteLine("상점에 입장한 레벨입니다. 입장합니다.");

	if (money > itemPrice)
	{
	    Console.WriteLine("아이템을 구매하였습니다.");
	}
	else
	{
		Console.WriteLine("보유금액이 부족하여 아이템을 구매할 수 없습니다.");
	}
}
else
{
Console.WriteLine("상점에 입장 가능한 레벨이 아닙니다.");
}

 

 


2. Switch문

하나의 값을 여러 후보와 대조하는 형태에서 자주 쓰입니다.

csharp
char grade = 'B';
        
switch (grade)
{
    case 'S':
    case 'A':
        Console.WriteLine("희귀 장비 보상");
		break;
	case 'B':
	case 'C':
		Console.WriteLine("일반 장비 보상");
		break;
	default:
		Console.WriteLine("보상 없음");
		break;
}

출력 : 일반 장비 보상

 

 


2-1) Switch 식

Switch 문을 좀더 간략하게 표현하는 방식이다.

  • case와 : 를 =>로 변경
  • switch문의 조건식은 switch 키워드 앞으로
  • break 절은 작성하지 않으며, 각 케이스는 콤마 ,로 구분
  • default 키워드는 _로 대체합니다.
csharp
char grade = 'B';
string itemGrade;

itemGrade = grade switch
{
    'S' => "전설 보상",
    'A' => "에픽 보상",
    'B' => "희귀 보상",
    'C' => "고급 보상",
     _  => "일반 보상"
};

Console.WriteLine(itemGrade);

출력 : 희귀 보상

3. 삼항연산자

갈래가 둘이고, 각 갈래가 값 하나를 정하는 경우

<반환받을 변수> = <조건> ? true일때 반환값 : false일때 반환값

csharp
bool isPlayerMove = false;

isAnimationPlay = isPlayerMove == true ? "재생" : "멈춤";
Console.WriteLine(isAnimationPlay);

출력 : 멈춤