유니티

유니티 C# 프로그래밍 기초 - 조건문 if / else if /switch

nock_ji 2022. 3. 28. 02:09

유니티 C# 프로그래밍 기초

 

[조건문]&[ if / else if / switch / default]

 


[ if 문 ]

조건이 true일 때, 로직을 실행한다

 

  • if 문
if (true) {
 	//로직
 	}

if 단독 

if와 else if

if와 else 

다양하게 사용할 수 있다

 

if (조건문)
	{
	//로직
    	}
    
else if (조건문)
	{
	//로직
    	}
    
else 
	{
	//로직
    	}

차례대로 조건문이 true인지 판단한 후, 로직을 실행한다.

모든 조건식이 거짓이면 else의 로직을 실행한다

 

 

int health = 40;
int mana = 35;

bool isBadCondition = health <= 50 || mana <=30;
string condition = isBadCondition ? "나쁨" : "좋음";

if(condition == "나쁨"){
	Debug.Log("캐릭터의 상태가 나쁘니 아이템을 사용하세요");
	}
    
else {
	Debug.Log("캐릭터의 상태가 좋습니다");
	}

condition나쁨이므로 조건문이 true이다. if문의 로직이 출력된다

.

.

.

결과


조금 더 복잡한 코드

int health = 40;
int mana = 35;

bool isBadCondition = health <= 50 || mana <=30;
string condition = isBadCondition ? "나쁨" : "좋음";

if(condition == "나쁨"){
	Debug.Log("캐릭터의 상태가 나쁘니 아이템을 사용하세요");
	}
    
else {
	Debug.Log("캐릭터의 상태가 좋습니다");
	}
    
    
List<string> items = new List<string>();
items.Add("생명물약30");
items.Add("마나물약30");
    
if(isBadCondition && items[0] == "생명물약30"){
items.RemoveAt(0);
health += 30;
Debug.Log("생명포션30을 사용하였습니다.");
Debug.Log(health);
}

else if (isBadCondition && items[1] == "마나물약30"){
items.RemoveAt(0);
mana += 30;
Debug.Log("마나포션30을 사용하였습니다.");
Debug.Log(mana);
}

isBadCondition true , items[0] 생명물약30과 동일하여 true이면

if문은 true가 되어 로직을 수행합니다

.

.

.

.

결과

 


[ switch 문 ]

같은 값을 case 순서대로 찾아 동일하면, 해당 로직을 실행한다

모든 case의 값과 동일하지 않을 경우에 default 로직이 실행된다

 

  • switch문 
switch (값) {
	case 값1 :
    	//로직
        //값과 값1이 같으면 로직 실행
    	break;
    
    	case 값2 :
    	//로직
        //값과 값2이 같으면 로직 실행
    	break;
    
    	default :
    	//로직 
        //모든 case의 값과 동일하지 않을 경우 default 로직 실행
    	break;
}

braek를 반드시 써서 로직을 끝낸다

 


string[] character = {"제시", "우디", "버즈"};

switch(character[1]){
	case "제시" :
    	Debug.Log("카우걸이 출현!");
    	break;
    
    	case "포키" :
	Debug.Log("포크가 출현!");
	break;

	case "버즈" :
	Debug.Log("우주인이 출현!");
	break;

	default:
	Debug.Log("카우보이가 출현!");
	break;
}

character[1]"우디"이고, 모든 case에서 적합한 값이 없으므로 default 로직을 수행한다

.

.

.

결과


string[] character = {"제시", "우디", "버즈"};

switch(character[1]){
	case "제시" :
    	case "우디" :
    	Debug.Log("보안관이 출현!");
    	break;
    
    	case "포키" :
	Debug.Log("포크가 출현!");
	break;

	case "버즈" :
	Debug.Log("우주인이 출현!");
	break;

	default:
	Debug.Log("아무도 없다");
	break;
}

case를 중복하여 사용하고 같은 로직을 수행하도록 적을 수 있다

 

	case "제시" :
    	case "우디" :
    	Debug.Log("보안관이 출현!");
    	break;

.

.

.

결과

 

 

 

 

 

 

 

다음에는 반복문 (for, foreach, while)을 알아보겠습니다