- 다음 내용은 Unity 퀘스트 모음집 \ C# 사전 문법 기초 \ 배열 페이지들을 학습하고 작성되었습니다.
배열
기본
- 하나의 변수에 여러 데이터를 저장
- 데이터 타입 뒤에 [](대괄호)를 붙여 해당 변수를 배열로 만듦
string game = "LOL";
game = "WOW"; // game 변수에 LOL은 삭제되고 WOW만 저장
string game = "WOW"; // ERR : 같은 공간에 같은 변수명 사용 불가
// 배열 선언
string[] games = { "LOL", "WOW" };
생성
- 배열은 하나의 공간에 여러 데이터를 저장
- 각 데이터가 구별될 수 있도록 분리된 공간 필요
- 배열이 집이라면 각 데이터가 저장된 공간은 개인 방
- new 키워드로 새로운 방 생성
- [] 안에 몇 개의 데이터가 들어갈 지 명시
- 각 공간에 0 ~ n까지 자동으로 인덱스가 붙고 이를 통해 데이터에 접근 가능
// 변수 선언과 동시에 초기화
string[] game = new string[3];
// 변수만 만들고 공간은 나중에 할당
string[] game2;
game2 = new string[3];
데이터 저장
- 각 인덱스에 하나씩 데이터를 저장할 수 있음
string[] game = new string[3];
game[0] = "LOL";
game[1] = "WOW";
game
| "LOL" | "WOW" |
0 1 2
데이터 활용
- 접근하다 : 특정 인덱스의 데이터를 다룬다
인덱스로 데이터에 접근하여 출력한 예)
Console.WriteLine(game[0]); // LOL
Console.WriteLine(game[1]); // WOW
각 타입별 배열
- 문자열 외에도 각 타입에 맞는 배열 생성 가능
- 배열의 타입이 맞지 않으면 에러
// 정수형 배열
int[] year = new int[3];
year[0] = 2022;
year[1] = 2023;
year[2] = 2024;
Console.WriteLine(year[0]); // 출력 - 2022
Console.WriteLine(year[1]); // 출력 - 2023
Console.WriteLine(year[2]); // 출력 - 2024
// 실수형 배열
float[] weight = new float[2];
weight[0] = 64.5f;
weight[1] = 72.7f;
Console.WriteLine(weight[0]); // 출력 - 64.5
Console.WriteLine(weight[1]); // 출력 - 72.7
// 잘못된 예시
string[] game = new string[3];
game[0] = "LOL"; // OK - string 배열에 string 저장
game[1] = 2024; // ERR - string 배열에 int 저장
game[2] = 64.5; // ERR - string 배열에 float 저장
반복 처리
- 반복문을 이용해 배열 접근하면 효율적
// 정수형 배열
int[] year = new int[3];
year[0] = 2022;
year[1] = 2023;
year[2] = 2024;
// 반복문 사용하지 않고 출력
Console.WriteLine(year[0]); // 출력 - 2022
Console.WriteLine(year[1]); // 출력 - 2023
Console.WriteLine(year[2]); // 출력 - 2024
// 반복문 사용하여 출력
for (int i = 0; i < 3; i++)
{
Console.WriteLine(year[i]);
}
foreach
- 조건식을 쓰지 않고 배열을 처음부터 끝까지 반복
- 기본 형태
foreach (변수타입 반복변수 in 배열)
{
실행 내용
}
- 반복변수 타입은 배열의 타입과 일치해야 함
string[] games = new string[3] { "LOL", "WOW", "FIFA" };
foreach (string game in games)
{
Console.WriteLine(game);
}
LOL
WOW
FIFA
추가 학습
배열에 데이터가 없으면?
- 데이터가 할당되지 않은 공간은 기본값 출력
int[] numbers = new int[2];
Console.WriteLine(numbers[0]); // 출력 - 0
bool[] check = new bool[2];
Console.WriteLine(check[0]); // 출력 - false
string[] names = new string[2];
Console.WriteLine(check[0]); // 출력 -
배열 초기화
- 배열은 생성과 동시에 데이터 기본값으로 초기화
- 배열 생성과 동시에 초기화 가능
- 데이터 개수와 new 키워드 생략 가능
// 생성과 동시에 초기화
int[] years1 = new int[3] { 2022, 2023, 2024 };
// 데이터 개수 생략
int[] years2 = new int[] { 2019, 2020, 2021 };
// new 키워드 생략
int[] years3 = { 2017, 2018 };
인덱스 초과
- 존재하지 않는 인덱스로 접근하면 에러
- 항상 배열의 크기 잘 생각하기
string[] game = new string[3];
game[3] = "FIFA"; // IndexOutOfRangeException'내일배움캠프 > IL' 카테고리의 다른 글
| [내배캠][Unity_6기][IL] C# 추가 학습 (0) | 2024.08.31 |
|---|---|
| [내배캠][Unity_6기][IL] C# 클래스와 객체 (0) | 2024.08.31 |
| [내배캠][Unity_6기][IL] C# 함수 (0) | 2024.08.30 |
| [내배캠][Unity_6기][IL] C# 제어문 (0) | 2024.08.30 |
| [내배캠][Unity_6기][IL] C# 연산자 (0) | 2024.08.30 |