TIL(24-03-20) - 배열(C#)

임재훈·2024년 3월 20일

C#

목록 보기
2/11

배열

여러 데이터한 가지 변수에 저장하는 기능.

1. 배열 - 생성

// 변수를 만들면서 방 만들기
string[] game = new string[3];

//변수만 만들어 놓고 나중에 방 만들기
string[] game;
game = new string[3];
  • 위와 같이 크기가 3인 배열을 생성하면 아래의 그림과 같이 3개의 방이 만들어진다.
  • 각 방마다 이름이 있는데 이것을 인덱스(Index)라고 한다.

    주의
    인덱스는 0부터 시작해서 크기가 커질 때마다 1씩 증가한다.

2. 배열 - 데이터 저장

  • 데이터를 하나씩 인덱스로 접근하여 저장할 수 있다.

string[] game = new game[3];
game[0] = "Leage of Legends" // game의 0번째 인덱스에 "Leage of Legends" 데이터 저장
game[1] = "메이플스토리" // // game의 1번째 인덱스에 "메이플스토리" 데이터 저장


이때 인덱스가 2인 방에는 데이터를 저장하지 않았다 그러면 무엇이 들어있을까?

실행시켜보면 아무것도 출력되지 않는다.
데이터가 없는 것이라 착각할 수도 있지만, 데이터가 없는 것이 아니다 ""가 들어있는 상태이다.
이를 기본값이라고 하며 자료형마다 기본값이 다르다.

  • 문자의 경우: ""
  • 숫자의 경우: 0
  • 불리언의 경우: false

3. 배열 - 초기화

  • 배열은 생성과 동시에 기본값으로 초기화된다.

  • 기본값이 아닌 원하는 데이터로도 초기화할 수 있다.

string[] game = new string[3] {"League of Legends", "메이플스토리", "디아블로"};
int[] year = new int[4] {2024, 2025, 2026, 2027};

배열을 만들고 뒤에 중괄호{}를 붙이고 그 안에 데이터를 입력하면 된다.

주의
원하는 데이터로 초기화를 할 때에는 생성한 배열 크기에 맞게 데이터를 저장해야한다.

  • 생성과 동시에 초기화를 진행한다면 배열의 크기를 입력하지 않아도 된다.
string[] game = new string[] {"League of Legends", "메이플 스토리", "디아블로"};
  • 또한 개발할 때 형태가 짐작이 가능한 경우 생략하고 작성하는게 가능한 경우가 있다.
  • 이런것을 암시적이라고 표현한다.
  • 배열에서는 new 배열[]을 생략하고 초기화할 수 있다.
string[] game = {"League of Legends", "메이플 스토리", "디아블로"};

4. 배열 - 데이터 활용

  • 배열에 저장된 데이터는 인덱스를 이용하여 접근 가능하다.
Console.WriteLine(game[0]); // 출력 - League of Legends 
Console.WriteLine(game[1]); // 출력 - 메이플스토리

주의
배열의 크기보다 큰 인덱스에 접근하려고 하면 에러가 발생한다.

5. 배열 - 각 타입별 배열

  • 배열은 문자열 말고도 타입에 맞는 배열들을 저장할 수 있다.
int[] year = new int[2];
year[0] = 2024;
year[1] = 2025;

float[] height = new float[2];
height[0] = 164.5f;
height[1] = 172.7f;

주의
배열의 타입이 맞지 않으면 에러가 발생한다.

string[] game = new game[3];
game[0] = "Leage of Legends";  // 정상 - string 배열에 string 저장
game[1] = 2020;                // 에러 - string 배열에 int 저장
game[2] = 164.5;               // 에러 - string 배열에 float 저장

6. 배열 - foreach

  • 배열의 인덱스는 0부터 순차적으로 1씩 증가한다 이 점을 이용해 for문이나 while문 같은 반복문을 사용하여 활용가능하다.
  • 만약 배열을 처음부터 끝까지 반복해야할 때는 foreach문을 사용하면 편리하다.
string[] games = new string[3] {"League of Legends", "메이플 스토리", "디아블로"} 
foreach(string game in games)
{
	Console.WriteLine(game);
	// 0번째 반복시 game : League of Legends
	// 1번째 반복시 game : "메이플 스토리"
	// 2번째 반복시 game : 디아블로
}

주의

  • 지정할 반복 변수의 타입배열의 타입일치해야한다.
profile
초심을 잃지 말자!

0개의 댓글