[Unity C#] 배열

YongSeok·2022년 7월 8일
0

📌 배열이란?

  • 같은 형식의 데이터를 한 그룹으로 묶어서 사용하는 것

  • 배열이 필요한이유
    • 5마리의 적이 있다고 가정할때, 5마리 적의 체력을 담는 변수선언
      int enemy01 = 31;
      int enemy02 = 28;
      int enemy03 = 45;
      int enemy04 = 52;
      int enemy05 = 66;
    • 만약 이러한 적이 50마리라고 한다면? 50개의 변수를 선언해야할까?

  • 배열의 선언

    // 데이터형식[] 배열이름 = new 데이터형식[크기];
    int[] enemys = new int [5];

    int[] enemys = new int[5]; 와 같이 선언하면 int 데이터를 담을 수 있는 5개의 데이터 공간이 생성된다 enemys라는 변수 하나에 그룹하 되었기 때문에 enemys[0]과 같이 방 번호를 접근해 변수에 데이터를 설정하거나 사용할 수 있다.

  • 배열에 값 저장하기

    int[] enemys = new int [5];
    
    enemys[0] = 31;
    enemys[1] = 28;
    enemys[2] = 45;
    enemys[3] = 52;
    enemys[4] = 66;


  • 배열의 장점

    • 선언 뿐만 아니라 사용할 때도 개수만큼의 줄 수가 필요한 변수와 달리 배열은 반복문을 이용해 한번에 사용 가능
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        int[] enemys = new int[5];
    
        void Start()
        {
            enemys[0] = 31;
            enemys[1] = 28;
            enemys[2] = 45;
            enemys[3] = 52;
            enemys[4] = 66;
    
            for (int i = 0; i < 5; i++)
            {
                Debug.Log($"적 {i}의 체력 : {enemys[i]}");
            }
        }
    }
  • 배열의 초기화

    • 첫 번째 방법은 배열의 원소 개수를 명시, 그뒤에 중괄호 { 와 } 로 둘러싸인 블록을 붙인 뒤, 블록 사이에 배열의 각 원소에 입력될 데이터 입력
      int[] enemys = new int[5] {31,28,45,52,66};
    • 두 번째 방법은 첫 번째 방법에서 배열의 용량을 생략
      int [] enemys = new int[] {31,28,45,52,66};
    • 세 번째 방법은 new 연산자, 형식과 괄호 '[' 와 ']', 배열의 용량 모두 생략
      int [] enemys = {31,28,45,52,66};

✏️ 2차원 배열의 선언

  • (세로 + 가로) 형태로 된 배열로 차원의 크기를 콤마(,)로 구분해서 입력

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        void Start()
        {
            // 데이터형식[,] 배열이름 = new 데이터형식[2차원크기, 1차원크기];
            int[,] enemys = new int[2, 3];
    
            enemys[0, 0] = 31;
            enemys[0, 1] = 28;
            enemys[0, 2] = 45;
            enemys[1, 0] = 10;
            enemys[1, 1] = 56;
            enemys[1, 2] = 68;
        }
    }


✏️ 가변 배열 (Jagged Array)

  • Jagged의 뜻은 "들쭉날쭉한" 이라는 뜻
  • 말 그대로 1차원의 크기를 들쭉날쭉 다르게 설정할 수 있다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    int x = 10;

    void Start()
    {
        // 데이터형식[][] 배열이름 = new 데이터형식[가변 배열의 용량][];
        int[][] array = new int[3][];

        array[0] = new int[3] { 1, 2, 3 };
        array[1] = new int[] { 10, 20, 30, 40 };
        array[2] = new int[] { 100, 200, 300, 400, 500 };

        for (int i = 0; i < array.Length; i++)
        {
            for (int j = 0; j < array[i].Length; j++)
            {
                Debug.Log($"[{i}][{j}] = {array[i][j]}");
            }
        }
    }
}

0개의 댓글