728x90
반응형

01. 1차원 배열


배열

 

  • 기본 개념 : 같은 데이터형 + 변수명 + 순차적인 메모리 나열

  • 참조형 : new를 통해 생성

  • Array로 부터 파생된 참조형

  • foreach 사용가능

 

1차원 배열

  • 선언 형식

      데이터형[] 배열명;

      int[] array_name;

 

  • 생성과 초기화

      int[] array;

      array = new int[] {1, 2, 3};  // new를 통해 생성한다.

      array = new int[3] {1, 2, 3}; // 3이라는 크기를 명시해놓은 예시

 

      int[] array = new int[3] {1, 2, 3};

      int[] array = new int[] {1, 2, 3};

 

      int[] array = {1, 2, 3}; // C#에서 자주쓰임 (초기화도 자동으로 해준다)

 

  • Array.Length 속성  // Length는 배열의 변수(속성)을 가지고 있다.

  • foreach 사용 (읽기 전용)

5-1 예제) 

 같은 문장으로 같은 결과를 나타낸다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _5_1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] nArray = { 1, 2, 3, 4 };
            for (int i = 0; i < 4; i++)						// for문
                Console.Write("{0} ", nArray[i]);            
            Console.Write('\n');
            Console.WriteLine("=====================");

            for (int i = 0; i < nArray.Length; i++)			// for문
                Console.Write("{0} ", nArray[i]);
            Console.Write('\n');
            Console.WriteLine("=====================");

            foreach (int m in nArray)						// foreach문
                Console.Write("{0} ", m);
            Console.Write('\n');
            string[] Days = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
            foreach (string str in Days)
                Console.Write(str + " ");
        }
    }
}

 

 

02. 2차원 배열


  • 행과 열, 면은 콤마( , )로 구분

  • 선언 형식

  • 데이터형[ , ] 배열명;

  • 데이터형[ , , ] 배열명;

 

  • 형식 (1)

      int[ , ] array1 = new int[2,2];

      int[ , , ] array2 = new int[2, 3, 2]; // 3차원: 면 / 행 / 렬   0으로 setup

      

      int[ , ] array1 = new int[ , ]

      {

         {1, 2], {3, 4}

      };

 

      int[ , , ] array2 = new int[ , , ]

      {

         {{1, 2], {3, 4}},

         {{5, 6}, {7, 8}}

      };

 

  • 형식 (2)

      int[ , ] array1 = new int[2, 2]

      {

          {1, 2}, {3, 4}

      };

 

      int[ , , ] array2 = new int[2, 3, 2]

      {

          {{1, 2}, {3, 4}, {5, 6}},

          {{7, 8}, {9, 10}, {11, 12}}

      };

 

  • 형식 (3)

      int[ , ] array2 = {

                               {1, 2], [3, 4], [5, 6]

                           };

      int[ , , ] array3 = {

                                {{1, 2}, {3, 4}, {5, 6}},

                                {{7, 8}, {9, 10}, {11, 12}}

                            };

 

  • 2차원과 다차원 배열 사용하는 예

      - int형 2차원 배열

      - 다차원형 문자열 배열

 

 

5-2 예제)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _5_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] nArray1 = new int[2, 2];
            nArray1[0, 0] = 1;
            nArray1[0, 1] = 2;
            nArray1[1, 0] = 3;
            nArray1[1, 1] = 4;

            for (int i = 0; i < 2; i++)
                for (int j = 0; j < 2; j++)
                    Console.Write(nArray1[i, j] + " ");
            Console.Write('\n');

            int[,] nArray2 = { { 1, 2 }, { 3, 4 } };
            for (int i = 0; i < 2; i++)
                for (int j = 0; j < 2; j++)
                    Console.Write(nArray1[i, j] + " ");
            Console.Write('\n');

            string[,,] strArray = { { { "ab", "cd" }, { "ef", "gh" } },
                         { { "ij", "kl" }, { "mn", "op" } }};
            for (int i = 0; i < 2; i++)
                for (int j = 0; j < 2; j++)
                    for (int k = 0; k < 2; k++)
                        Console.Write(strArray[i, j, k] + " ");
        }
    }
}

728x90
반응형

+ Recent posts