배열의 선언 방식
데이터_형식[] 배열_이름 = new 데이터_형식[용량];
Ex) int [] scores = new int[5];배열의 각 요소에 데이터를 저장하거나 읽어올 때는 배열 이름 뒤 대괄호와 []를 붙여주고, index를 적어주면 된다.
참고로 배열은 1이 아니라 0부터 시작한다. 여기서 for 문이나 foreach 문과 함께 사용하면 코드를 간결하게 만들 수 있다.
int[] scores = new int[5]
scores[0] = 100;
scores[1] = 90;
scores[2] = 80;
scores[3] = 70;
scores[4] = 60;배열을 이용한 코드는 변경사항이 생겨도 바꿔줄 것이 없어 코드 관리가 쉽다. 다음 예제를 통해 알아보도록 하자.
namespace ArraySample
{
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5];
scores[0] = 100;
scores[1] = 90;
scores[2] = 80;
scores[3] = 70;
scores[4] = 60;
foreach(int score in scores)
Console.WriteLine(score);
int sum = 0;
foreach(int score in scores)
sum += score;
int average = sum / scores.Length; //배열 객체의 Lengh 프로퍼티는 배열의 용량을 나타냅니다.
Console.WriteLine($"Average Score : {average}");
}
}
}100, 90, 80, 70, 60
Average Score : 80배열이 0부터 시작한 다는 것을 알게된 우리는 기억만 해두면 접근할 때 큰 불편은 없지만, 마지막 요소를 기준으로 접근하고싶다면 다른 방법을 사용해야합니다. 마지막 요소를 위해선 아래와 같이 '배열의 길이'에서 -1을 해야합니다.
int[]scores = new int[5]
scores[scores.Length - 1] = 34;C# 8.0부턴 이런 불편함을 없애기 위해 System.Index형식과 '^' 연산자가 생겼습니다. ^ 연산자는 컬렉션의 마지막부터 역순으로 인덱스를 지정하는 기능을 갖고 있습니다. ^1은 컬렉션의 마지막 요소, ^2 마지막에서 두번쨰, ^3 는마지막에서 세 번째를 나타내고 있죠. ^연산자의 연산 결과는 System.Index 형식의 인스턴스로 나타납니다. 예제까지 같이봅시다.
[기본]
System.Index last = ^1;
scores[last] = 34; // scores[scores.Length -1] = 34와 같습니다. 아시죠?
[간결하게]
scores[^1] = 34; // scores[scores.Length -1] = 34namespace ArraySample
{
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5];
scores[0] = 100;
scores[1] = 90;
scores[2] = 80;
scores[^2] = 70;
scores[^1] = 60;
foreach(int score in scores)
Console.WriteLine(score);
int sum = 0;
foreach(int score in scores)
sum += score;
int average = sum / scores.Length; //배열 객체의 Lengh 프로퍼티는 배열의 용량을 나타냅니다.
Console.WriteLine($"Average Score : {average}");
}
}
}
결과값은 아까와 똑같이 100, 90, 80, 70, 60입니다.배열을 초기화하는 세 가지 방법
이번엔 배열을 초기화하는 방법 세 가지입니다. 첫 번째는 배열의 원소 개수를 명시하고, 뒤에 중괄호와 { } 블록을 붙인뒤, 블록 사이에 배열의 각 원소에 입력될 데이터를 입력합니다. 이렇듯 배열 객체를 초기화하는 { } 블록을 일컬어 컬렉션 초기자(Collection Initalizer)라 한다나 뭐라나...
[배열의 용량 명시]
string[] array1 = new string[3] { "안녕", "Hello", "Konnichiwa" };
[배열의 용량 생략]
string[] array2 = new string[] { "안녕", "Hello", "Konnichiwa" };
[전부 생략]
string[] array3 = { "안녕", "Hello", "Konnichiwa" };세 가지 배열의 초기화 방법만 보면 "당연히 3번 사용해야 하는 거 아님?ㅋㅋ" 이라 할수 있지만 꼭 그렇진 않습니다. 코드를 다른 사람이 물려받거나 동료들과 공유할 때는 상대방이 읽기 편해야 하니까 첫 번째 방법을 쓰는게 좋다고 하네요. 물론 취향차이지만 말이죠. 자 이제 예제 프로그램입니다.
using System;
namespace InitiallizeArray
{
class Program
{
static void Main(string[] args)
{
string[] array1 = new string[3] { "안녕", "Hello", "Konnichiwa" };
Console.WriteLine("array1 ...");
foreach(string greeting in array1)
Console.WriteLine($"{greeting}");
string[] array2 = new string[] { "안녕", "Hello", "Konnichiwa" };
Console.WriteLine("\narray2 ...");
foreach (string greeting in array2)
Console.WriteLine($"{greeting}");
string[] array3 = { "안녕", "Hello", "Konnichiwa" };
Console.WriteLine("\narray3 ...");
foreach (string greeting in array3)
Console.WriteLine($"{greeting}");
}
}
}array1...
안녕
Hello
Konnichiwa
array2...
안녕
Hello
Konnichiwa
array3...
안녕
Hello
Konnichiwa
'C#.' 카테고리의 다른 글
| Unity Disacards - C# (0) | 2023.11.05 |
|---|---|
| 이것이 C#이다 10장) 배열 Array [2] (0) | 2023.09.04 |
| 이것이 C#이다 9장 ) 인터페이스와 추상클래스의 프로퍼티 (feat:무명형식) (0) | 2023.08.31 |
| 이것이 C#이다 9장) 불변 객체 record (0) | 2023.08.30 |
| 이것이 C#이다 9장) 자동구현 Property (0) | 2023.08.30 |