SideProjects/[집필] 실전 유니티 C#

[실전 유니티 C#] switch case 문

VirtualDever 2022. 5. 1. 20:48
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor.UI;
using UnityEngine;

public class Player : MonoBehaviour {
  public int currentHP = 70;          // 현재 체력
  public const int maxHP = 100;       // 체력 max
  public string name;                 // 이름
  public string guildName;            // 길드 명
  public int currentLevel = 1;        // 현재 레벨
  public int state = 0;               // 플레이어의 현재 상태
  
  private void Start() {
    name = "용감한 용사";
    guildName = "[유니티용병단]";

    string fullName = guildName + "Level" + currentLevel.ToString() + " " + name;

    switch (state) {
      case 0:
        Idle();
        break;
      case 1:
        Move();
        break;
      case 2:
        Attack();
        break;
      case 3:
        Skill();
        break;
      case 4:
        Damaged();
        break;
      case 5:
        Die();
        break;
      default:
        break;
    }
  }

  private void Idle() {
    Debug.Log("Idle");
  }

  private void Move() {
    Debug.Log("Move");
  }

  private void Attack() {
    Debug.Log("Attack");
  }

  private void Skill() {
    Debug.Log("Skill");
  }

  private void Damaged() {
    Debug.Log("Damaged");
  }

  private void Die() {
    Debug.Log("Die");
  }
}

직전 시간에 배운 if 문을 switch case 문으로도 바꿀 수 있습니다.

if 문은 보다 복잡한 조건문에 어울리고, switch case 문은 정형화된 값이 주어질 때 사용하면 좋습니다.

이를테면, state 변수와 같이 0, 1, 2, 3, 4, 5 와 같이 단순한 값들로 여러 개 주어졌을 때 유용합니다.

그에 비해 if 문은 한 가지 조건이 아니라 여러 조건으로 분기를 나눌 수도 있습니다.

if 문과 switch case 문이 정확히 동일하다고는 할 수 없습니다.

하지만 제가 작성한 switch case 문과 if 문은 동일하게 동작하긴 합니다.

 

switch case 문은 case 옆에 값을 넣고, 바로 아래에 실행할 코드를 추가합니다.

그리고 실행할 코드 블록이 끝나는 시점에 break; 로 switch case 문을 빠져나가도록 할 수 있습니다.

 

다음 시간에는 switch case 문을 빛나게 해줄 열거체 enum에 대해서 배워보도록 하겠습니다.