유니티 C# - 제어문

황정욱·2022년 10월 28일
0
post-thumbnail
public class IfStatement : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // ------------------ if ------------------ 
        int x = 1;
        if (x == 1)
        {
            int y = 2;

            Debug.Log(x);
            Debug.Log(y);
        }

        x = 12;
        if (x < 5)  // if문의 실행될 코드가 한 줄이면 { } 생략할 수 있다.
            Debug.Log("x는 5보다 작습니다.");
        else if (x < 10)
        {
            Debug.Log("x는 5보다 크거나 같고");
            Debug.Log("x는 10보다 작습니다.");
        }
        else if (x < 15)
        {
            Debug.Log("x는 10보다 크거나 같고");
            Debug.Log("x는 15보다 작습니다.");
        }
        else
            Debug.Log("x는 15보다 크거나 같습니다.");

        // if 문의 3가지 규칙
        // 1번
        int xyz = 5;

        if (xyz == 4)
            Debug.Log("xyz는 4입니다.");
        if (xyz == 5)
            Debug.Log("xyz는 5입니다.");
        if (xyz == 6)
            Debug.Log("xyz는 6입니다.");
        if (xyz == 5)
            Debug.Log("xyz는 5가 확실합니다.");

        // 2번
        if (xyz == 4)
            Debug.Log("xyz는 4입니다.");
        else if (xyz == 5)
            Debug.Log("xyz는 5입니다.");
        else if (xyz == 6)
            Debug.Log("xyz는 6입니다.");
        else if (xyz == 5)
            Debug.Log("xyz는 5가 확실합니다.");

        // 3번
        if (xyz == 4)
            Debug.Log("xyz는 4입니다.");
        else if (xyz == 5)
            Debug.Log("xyz는 5입니다.");
        else if (xyz == 6)
            Debug.Log("xyz는 6입니다.");
        else
            Debug.Log("xyz는 4, 5, 6 이 아닙니다.");
        // ------------------ if ------------------
        
            
       	// ------------------ switch ------------------ 
        int a = 2;
        switch(a)
        {
            case 0:
                Debug.Log($"숫자는 0 입니다.");
                break;
            case 1:
                Debug.Log($"숫자는 1 입니다.");
                break;
            case 2:
                Debug.Log($"숫자는 2 입니다.");
                break;
            case 3:
                Debug.Log($"숫자는 3 입니다.");
                break;
        }

        int b = 3;
        switch(b)
        {
            case 0:
            case 1:
            case 2:
            case 3:
                Debug.Log($"숫자는 3보다 작거나 같습니다.");
                break;
            case 4:
            case 5:
            case 6:
                Debug.Log($"숫자는 3보다 크거나 6보다 작거나 같습니다.");
                break;
            default:
                Debug.Log($"숫자는 6보다 큽니다");
                break;
        }
        // ------------------ switch ------------------ 
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

if문은 간단하다

// 제어문
// if문 : 조건문, 분기문
// if(조건문)
// {
//      실행될 코드
// }

이런식으로 작성을 해주면 된다.
그렇기 때문에 첫번째 if문에서 if(x == 1)으로 조건문이 만족이 되어서 중괄호 내 코드가 실행이 된다.

다음 if문에서는 else 와 else if를 볼 수 있다.
위로 가장 가까운 if문과 짝을 이룬다. 그렇기 때문에 가장 가까운 if문에 작성한 조건문을 만족하지 못하면 다음으로 else if로 다른 경우를 확인한다. 하지만 많은 경우의 수중 하나를 살펴봤는데 만족을 못하면 else를 찾아간다. else에 도달하면 그외의 모든 경우의 수를 보고 else문안에 이쓴 코드가 실행 된다.

쉽게 말해 if문을 사용하면
1. 경우의 수를 살펴보는데
2. 가장 먼저 확인하는 if문에 만족을 못하면
3. 그외의 나머지 경우의 수중 일부를 확인한다.
4. 그러나 다 만족하지 못하면 나머지 경우의 수를 확인한다.

switch문은 if문과 비슷하다.

// switch ~ case 문
// switch (조건식)     //조건식 결과로 나올 수 있는 값 : 정수형, 문자, 문자열
// {
//      case 상수:
//          실행될 코드;
//      break;
//
//      case 상수:
//          실행될 코드;
//      break;
//
//      default:
//          실행될 코드;
//      break;
// }

case (경우) 를 확인하고 그 경우가 맞다면 코드를 실행하고 그렇지 않다면 다음 경우를 살펴본다. default는 if문에서 사용한 else와 같은 개념이다. 각 경우마다 break;라는 코드가 있는데 이것은 그 경우가 맞다면 코드를 실행하고 나머지 경우를 살펴보지 않고 즉시 switch문을 끝내겠다는 뜻이다.

case 0:
case 1:
case 2:
case 3:

의 의미는 case 0 에서 case 3까지 모두 같은 조건으로 묶는다는 뜻이다. 위의 예시에서는 값이 0, 1, 2, 3중 하나여도 같은 코드를 실행한다는 뜻이다.

조건이 필요한 코드를 작성할때는 if문과 switch문을 사용하는데 본인 취향에 맞게 아무거나 사용하면 된다.

profile
C언어, C#, 그리고 유니티

0개의 댓글