2024. 8. 23. 19:03ㆍ카테고리 없음
개요
C#에서 배열를 배워보겠습니다.
foreach (중요도 - 중)
조건식을 쓰지 않고 해당 배열을 처음부터 끝까지 반복할 때 사용합니다.
string[] games = new string[3] {"League of Legends", "메이플 스토리", "디아블로"};
foreach(string game in games)
{
// 0번째 반복시 game : League of Legends
// 1번째 반복시 game : "메이플 스토리"
// 2번째 반복시 game : 디아블로
Console.WriteLine(game);
}
//실행결과
//League of Legends
//메이플 스토리
//디아블로
내용 - 배열
string[] game = new string[3]; : 변수를 만들고 방을 만들기
이렇게 만들고 나면 3칸 짜리 방을 가진 game이라는 집이 생기게 됩니다.
이방 한칸한칸을 인덱스 (Index) 라고 하는데 앞에 있는 방부터 0호실, 이후에는 1씩 올라갑니다. ( 0, 1, 2, 3, 4, 5 …)
저장방법
game[0] = "Leage of Legends"
game[1] = "메이플 스토리"
저장된 배열 출력방법
Console.WriteLine(game[0]); // 출력 - League of Legends
Console.WriteLine(game[1]); // 출력 - 메이플 스토리
Console.WriteLine(game[2]); // 출력 - (데이터가 없는게 아니라 “” 이 들어가 있는 상태)
조금 더 정확히는 비어있는 곳에 기본값 “”이 들어 있는 것은 아니라
배열이 만들어진 순간 모든 데이터가 기본값으로 초기화 됩니다.
생성과 동시에 초기화
배열을 만들고 뒤에 중괄호 { } 를 붙이고 그 안에 데이터를 입력하면 됩니다.
string[] game = new string[3] {"League of Legends", "메이플 스토리", "디아블로"};
int[] year = new int[4] {2020, 2021 2022, 2023};
단, 생성한 배열 크기에 맞게 데이터를 저장해야합니다.
더욱 간략하게
생성과 동시에 초기화를 진행한다면 배열의 방이 몇개짜리인지 입력하지 않아도 됩니다.
이러면 데이터 갯수가 맞지 않아 생기는 에러도 방지할 수 있습니다.
string[] game = new string[] {"League of Legends", "메이플 스토리", "디아블로"};
암시적으로 배열 형식 지정
때로는 new 와 함께 배열 형태를 만드는 것도 번거롭다고 느껴질 수 있습니다.
개발할때 형태가 짐작이 가능한 경우 생략하고 작성하는게 가능한 경우가 있습니다. 이런것을 암시적 이라고 표현합니다.
배열에서는 new 배열[ ] 을 생략하고 초기화 할 수 있습니다.
string[] game = {"League of Legends", "메이플 스토리", "디아블로"};
각 타입별 배열
문자배열
string[] game = new game[3];
game[0] = "Leage of Legends"
game[1] = "메이플 스토리"
Console.WriteLine(game[0]); // 출력 - Leage of Legends
Console.WriteLine(game[1]); // 출력 - 메이플 스토리
정수 배열
int[] year = new int[4];
year[0] = 2020;
year[1] = 2021;
year[2] = 2022;
year[3] = 2023;
Console.WriteLine(year[0]); // 출력 - 2020
Console.WriteLine(year[1]); // 출력 - 2021
Console.WriteLine(year[2]); // 출력 - 2022
Console.WriteLine(year[3]); // 출력 - 2023
실수 배열
float[] height = new float[4];
height[0] = 164.5f;
height[1] = 172.7f;
height[2] = 181.2f;
Console.WriteLine(height[0]); // 출력 - 164.5
Console.WriteLine(height[1]); // 출력 - 172.7
Console.WriteLine(height[2]); // 출력 - 181.2
배열의 타입이 맞지 않는 다면 에러가 발생합니다
string[] game = new game[3];
game[0] = "Leage of Legends"; // 정상 - string 배열에 string 저장
game[1] = 2020; // 에러 - string 배열에 int 저장
game[2] = 164.5; // 에러 - string 배열에 float 저장
배열에 반복문 혼합
int[] year = new int [4];
year[0] = 2020;
year[1] = 2021;
year[2] = 2022;
year[3] = 2023;
for (int i = 0; i < 4; i++)
{
Console.WriteLine(year[i]);
}
실행결과
2020
2021
2022
2023
데이터를 활용만이 아니라 저장에도 이용될 수 있습니다.
int[] year = new int [4];
for (int i = 0; i < 4; i++)
{
year[i] = 2020 + i;
Console.WriteLine(year[i]);
}
실행결과
2020
2021
2022
2023
내용 - 다차원 배열
- 여러 개의 배열을 하나로 묶어 놓은 배열
- 행과 열로 이루어진 표 형태와 같은 구조
- 2차원, 3차원 등의 형태의 배열을 의미
- C#에서는 다차원 배열을 선언할 때 각 차원의 크기를 지정하여 생성합니다.
코드
// 선언과 함께 초기화
int[,] array2D = new int[3, 4] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
// 2차원 배열의 선언과 초기화
int[,] array3 = new int[2, 3]; // 2행 3열의 int형 2차원 배열 선언
// 다차원 배열 초기화
array3[0, 0] = 1;
array3[0, 1] = 2;
array3[0, 2] = 3;
array3[1, 0] = 4;
array3[1, 1] = 5;
array3[1, 2] = 6;