컴퓨터프로그래밍/C#

C# - 배열

zelkova 2016. 11. 21. 21:50

 

<목차로 돌아가기>

 

배열을 왜 사용할가?

배열은 여러개의 변수를 한줄로 묶어놓은 것 이라고 할 수 있습니다.

 

만약 32, 12, 43, 23, 53, 72, 82, 20, 232, 432 의 숫자 모두 더해라! 라고외치면 우리가 배운 방법으로는 아래와 같이 해야합니다.

 

 

  1.  using System;
  2.  using System.Collections.Generic;
  3.  using System.Linq;
  4.  using System.Text;
  5.  using System.Threading.Tasks;
  6.  
  7.  namespace ConsoleApplication1
  8.  {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int a1 = 32;
  14.             int a2 = 12;
  15.             int a3 = 43;
  16.             int a4 = 23;
  17.             int a5 = 53;
  18.             int a6 = 72;
  19.             int a7 = 82;
  20.             int a8 = 20;
  21.             int a9 = 232;
  22.             int a10 = 432;
  23.             int result = 0;
  24.             result = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10;
  25.  
  26.             Console.WriteLine("합계 : ",result);
  27.         }
  28.     }
  29.  }

 

결과)

 

 

하지만 배열을 사용하면 아래와 같이 간단히 사용할 수 있습니다.

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int[] arr = new int[10]{ 32, 12, 43, 23, 53, 72, 82, 20, 232, 432};
  14.             int result = 0;
  15.             for (int i = 0; i < 10; i++)
  16.             {
  17.                 result += arr[i];
  18.             }
  19.             Console.WriteLine("합계는 : 입니다.", result);
  20.         }
  21.     }
  22. }

 

결과) 

 

혹시 별 차이 없다고 생각하시는분이 있을수도 있는데 변수가 100~1000개정도 된다고 생각해 보세요.  배열은 사랑입니당 ♡

배열의 사용방법

배열의 선언)

데이터타입[] 배열명(식별자) = new 데이터타입[크기]

 

배열에 입력1)

데이터타입[] 배열명(식별자) = new 데이터타입[크기]{ 값1, 값2, 값3, .... 크기만큼입력}

 

배열의 입력2)

데이터타입[] 배열명(식별자) = { 값1, 값2, 값3, .... 크기만큼입력}

 

배열의 입력3)

데이터타입[] 배열명(식별자) = new 데이터타입[크기]

배열명[0] = 값1

배열명[1] = 값2

배열명[2] = 값3

 .

 .

 .

배열명[크기] = 값X

 

예제)

  1.  using System;
  2.  using System.Collections.Generic;
  3.  using System.Linq;
  4.  using System.Text;
  5.  using System.Threading.Tasks;
  6.  
  7.  namespace ConsoleApplication1
  8.  {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int[] arr = new int[10] { 32, 12, 43, 23, 53, 72, 82, 20, 232, 432};
  14.             int result = 0;
  15.             for (int i = 0; i < 10; i++)
  16.             {
  17.                 result += arr[i];
  18.                 Console.WriteLine("result+arr["+i+"] = ", result);
  19.             }
  20.             Console.WriteLine("합계는 : 입니다.", result);
  21.         }
  22.     }
  23.  }

 

결과)

 

 

 

다차원 배열

다차원 배열을 쉽게 설명하려면 아래와 같이 이해하면 쉽습니다.

변수는 아래와 같이 한칸! 즉 점이라고 표현할 수 있고.

 

 값1

 

배열은 아래와 같이 여러 칸 즉 선이라 볼 수 있고..

값1

값2

값3

값4

값5

 

 

2차원 배열은 가로와 세로로 여러칸이 있는 면이라고 보면 되고.. 

값00

값01

값02

값03

값10

값11

값12

값13

값20

값21

값22

값23

값30

값31

값32

값33

 

 

3차원 배열은 음 -ㅁ-..... 뭐 .. 

이런거겠죠.. 네모박스 하나마다 하나의 값이 들어있다고 보면 됩니다.

 

이런식으로 배열을 지정할 수 있습니다.

 

사용방법)

 

배열의 선언)

데이터타입[,] 배열명(식별자) = new 데이터타입[크기,크기]

 

 "[]" 사이에 ','가 없으면 1차원

 "[]" 사이에 ','가 1개 있으면 2차원

 "[]" 사이에 ','가 2개 있으면 3차원이 됩니다.

이런식으로 4~6차원 배열을 만들 수 있겠죠.

 

 

그리고 ,를 선언한 만큼 크기를 정해줘야 합니다.

앞에서 ','가 한개 선언했다면 데이터타입의 크기를 2개 지정

앞에서 ','가 두개 선언했다면 데이터타입의 크기를 3개 지정해야죠.

 

아래는 약빨고 만들어봤습니다 -ㅁ-...

 

예제)

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int[] arr1 = new int[3] { 1, 2, 3 };
  14.  
  15.             int[,] arr2 = new int[3, 3]
  16.             { ,
  17.               ,
  18.              
  19.             };
  20.  
  21.             int[,,] arr3 = new int[3, 3, 3]
  22.             { 
  23.                 {   
  24.                     ,
  25.                     ,
  26.                    
  27.                 },
  28.                 {
  29.                     ,
  30.                     ,
  31.                    
  32.                 },
  33.                 {
  34.                     ,
  35.                     ,
  36.                    
  37.                 }
  38.             };
  39.  
  40.             Console.WriteLine("1차원배열");
  41.             for (int i = 0; i < 3; i++)
  42.             {
  43.                 if (i == 0) Console.Write("{");
  44.                 Console.Write("", arr1[i]);
  45.                 if (i != 2) Console.Write(","); 
  46.                 if (i == 2) Console.Write("}");
  47.             }
  48.  
  49.             Console.WriteLine("\n\n2차원배열");
  50.             for (int i = 0; i < 3; i++)
  51.             {
  52.                 if (i == 0) Console.Write("{");
  53.                 for (int j = 0; j < 3; j++)
  54.                 {
  55.                     if (j == 0) Console.Write("{");
  56.                     Console.Write("", arr2[i,j]);
  57.                     if (j != 2) Console.Write(",");
  58.                     if (j == 2) Console.Write("}\n");
  59.                 }
  60.                 if (i != 2) Console.Write(",");
  61.                 if (i == 2) Console.Write("}");
  62.             }
  63.  
  64.             Console.WriteLine("\n\n3차원배열");
  65.             for (int i = 0; i < 3; i++)
  66.             {
  67.                 if (i == 0) Console.Write("{");
  68.                 for (int j = 0; j < 3; j++)
  69.                 {
  70.                     for (int k = 0; k < 3; k++)
  71.                     {
  72.                         if (k == 0) Console.Write("{");
  73.                         Console.Write("", arr3[i, j,k]);
  74.                         if (k != 2) Console.Write(",");
  75.                         if (k == 2) Console.Write("}\n");
  76.                     }
  77.                 }
  78.                 if (i != 2) Console.Write(",");
  79.                 if (i == 2) Console.Write("}\n");
  80.             }
  81.  
  82.  
  83.         }
  84.     }
  85. }

결과)

 

 

가변 배열
int[][] arr = new int[5][]; //2차원 가변배열
arr[0] = new int[10];
arr[1] = new int[9];
int[2] = new int[8];
int[3] = new int[7];
int[4] = new int[6];

 

첫번째 방 10개

두번째 방 9개

세번째 방 8개

네번째 방 7개

다섯번재 방 6개

 

 

 

 

 

 

 

반응형

'컴퓨터프로그래밍 > C#' 카테고리의 다른 글

C# 변수의 범위  (0) 2016.11.22
C# - 메소드  (6) 2016.11.22
C# - 점프문  (0) 2016.11.21
C# - 반복문  (0) 2016.11.20
C# - 조건문  (2) 2016.11.20