C#교과서 마스터하기 10. 배열(Array)

min seung moon·2021년 7월 10일
0

C#

목록 보기
10/54
post-thumbnail

https://www.youtube.com/watch?v=qx6hqGeDZI0&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=37

1. 배열(Array)

01. 1차원 배열

  • 하나의 이름으로 같은 데이터 형식을 여러 개 보관해 놓는 그릇
  • zero-base index
  • 선언
    • type[] name = new type[length];
      int[] score = new int[10];
      score[0] = 100;
      score[1] = 90;
      score[2] = 80;
      score[3] = 70;
      score[4] = 60;
      score[5] = 50;
      score[6] = 40;
      score[7] = 30;
      score[8] = 20;
      score[9] = 10;

02. 2차원 배열

  • 선언
    • type[,] name = new type[length, length];
      int[,] score = new int[2, 3];
      score[0, 0] = 100;
      score[0, 1] = 100;
      score[0, 2] = 100;
      score[1, 0] = 100;
      score[1, 1] = 100;
      score[1, 2] = 100;

03. string 문자열

  • 문자열 string 일종의 char의 배열과도 같다
string arr = "ABCDEF";
WriteLine(arr); // ABCDEF
WriteLine(arr[0]); // A
WriteLine(arr[1]); // B
WriteLine(arr[2]); // C
WriteLine(arr[3]); // D
WriteLine(arr[4]); // E
WriteLine(arr[5]); // F

04. System.IndexOutOfRangeException

  • 프로그래밍의 순서는 기본 zero-base index이다
    • 나는 길이를 10을 입력했지만 0부터 시작하기에 마지막번호는 내가 지정한 길이 -1인 9이다
  • 지정한 길이를 벗어날 경우 System.IndexOutOfRangeException, 범위 초과 에러가 발생한다
string arr = "ABCDEF";
WriteLine(arr[0]); // A
WriteLine(arr[1]); // B
WriteLine(arr[6]); // ERROR, System.IndexOutOfRangeException, 범위 초과

05. Sytem.NullReferenceException

  • 개체 참조가 개체의 인스턴스로 설정되지 않았다
    • 기본 타입은 자동으로 초기화가 되면서 메모리에 참조를 하지만 기본 타입외의 타입은 메모리를 형식에 맞게 설정 해주어야 참조가 된다
int[] numbers;
WriteLine(numbers); // Sytem.NullReferenceException
int[] numbers = new int[3];
WriteLine(numbers);

06. 배열 선언과 초기화

// 1차원 배열
int[] numbers = new int[] {10, 20, 30};
// or
int[] numbers = {10, 20, 30};

// 2차원 배열
int [,] numbers = new int[2,2] {{1, 2}, {3, 4}};
// or
int [,] numbers = {{1, 2}, {3, 4}};

07. 배열의 길이

int[,] numbers = new int[2, 3];
// .Length, 배열의 총 길이
WriteLine(numbers.Length);  // 6
// .GetLength(0), // 배열의 1차원 길이
WriteLine(numbers.GetLength(0)); // 2
// .GetLength(1), // 배열의 2차원 길이
WriteLine(numbers.GetLength(1));  // 3

08. 배열 데이터 추출

  • for, foreach...in
int[] numbers = { 1, 2, 3, 4, 5};
// 특정 길이 만큼 추출
for (int i = 0; i < numbers.Length; i++) WriteLine(numbers[i]);
// 배열에 있는 모든 데이터 추출
foreach (int number in numbers) WriteLine(number);

profile
아직까지는 코린이!

0개의 댓글