배열을 왜 사용할가? |
배열은 여러개의 변수를 한줄로 묶어놓은 것 이라고 할 수 있습니다.
만약 32, 12, 43, 23, 53, 72, 82, 20, 232, 432 의 숫자 모두 더해라! 라고외치면 우리가 배운 방법으로는 아래와 같이 해야합니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int a1 = 32;
- int a2 = 12;
- int a3 = 43;
- int a4 = 23;
- int a5 = 53;
- int a6 = 72;
- int a7 = 82;
- int a8 = 20;
- int a9 = 232;
- int a10 = 432;
- int result = 0;
- result = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10;
- Console.WriteLine("합계 : ",result);
- }
- }
- }
결과)
하지만 배열을 사용하면 아래와 같이 간단히 사용할 수 있습니다.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] arr = new int[10]{ 32, 12, 43, 23, 53, 72, 82, 20, 232, 432};
- int result = 0;
- for (int i = 0; i < 10; i++)
- {
- result += arr[i];
- }
- Console.WriteLine("합계는 : 입니다.", result);
- }
- }
- }
결과)
혹시 별 차이 없다고 생각하시는분이 있을수도 있는데 변수가 100~1000개정도 된다고 생각해 보세요. 배열은 사랑입니당 ♡
배열의 사용방법 |
배열의 선언)
데이터타입[] 배열명(식별자) = new 데이터타입[크기]
배열에 입력1)
데이터타입[] 배열명(식별자) = new 데이터타입[크기]{ 값1, 값2, 값3, .... 크기만큼입력}
배열의 입력2)
데이터타입[] 배열명(식별자) = { 값1, 값2, 값3, .... 크기만큼입력}
배열의 입력3)
데이터타입[] 배열명(식별자) = new 데이터타입[크기]
배열명[0] = 값1
배열명[1] = 값2
배열명[2] = 값3
.
.
.
배열명[크기] = 값X
예제)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] arr = new int[10] { 32, 12, 43, 23, 53, 72, 82, 20, 232, 432};
- int result = 0;
- for (int i = 0; i < 10; i++)
- {
- result += arr[i];
- Console.WriteLine("result+arr["+i+"] = ", result);
- }
- Console.WriteLine("합계는 : 입니다.", result);
- }
- }
- }
결과)
다차원 배열 |
다차원 배열을 쉽게 설명하려면 아래와 같이 이해하면 쉽습니다.
변수는 아래와 같이 한칸! 즉 점이라고 표현할 수 있고.
값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개 지정해야죠.
아래는 약빨고 만들어봤습니다 -ㅁ-...
예제)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] arr1 = new int[3] { 1, 2, 3 };
- int[,] arr2 = new int[3, 3]
- { ,
- ,
- };
- int[,,] arr3 = new int[3, 3, 3]
- {
- {
- ,
- ,
- },
- {
- ,
- ,
- },
- {
- ,
- ,
- }
- };
- Console.WriteLine("1차원배열");
- for (int i = 0; i < 3; i++)
- {
- if (i == 0) Console.Write("{");
- Console.Write("", arr1[i]);
- if (i != 2) Console.Write(",");
- if (i == 2) Console.Write("}");
- }
- Console.WriteLine("\n\n2차원배열");
- for (int i = 0; i < 3; i++)
- {
- if (i == 0) Console.Write("{");
- for (int j = 0; j < 3; j++)
- {
- if (j == 0) Console.Write("{");
- Console.Write("", arr2[i,j]);
- if (j != 2) Console.Write(",");
- if (j == 2) Console.Write("}\n");
- }
- if (i != 2) Console.Write(",");
- if (i == 2) Console.Write("}");
- }
- Console.WriteLine("\n\n3차원배열");
- for (int i = 0; i < 3; i++)
- {
- if (i == 0) Console.Write("{");
- for (int j = 0; j < 3; j++)
- {
- for (int k = 0; k < 3; k++)
- {
- if (k == 0) Console.Write("{");
- Console.Write("", arr3[i, j,k]);
- if (k != 2) Console.Write(",");
- if (k == 2) Console.Write("}\n");
- }
- }
- if (i != 2) Console.Write(",");
- if (i == 2) Console.Write("}\n");
- }
- }
- }
- }
결과)
가변 배열 |
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개