Unity3D/C#

C# 강좌 Day-16 배열, foreach

일등하이 2021. 8. 30. 14:11
반응형

https://youtu.be/m1bdGSLR6R0?list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z 

 

https://youtu.be/oTgru_A31Ss?list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z 

배열은 동일한 데이터 형식을 갖는 데이터들의 집합이다 

 

대부분의 애플리케이션의 경우 관련 개체의 그룹을 만들고 관리하려고 합니다.

개체를 그룹화하는 방법에는 개체 배열을 만들거나 개체 컬렉션을 만드는 두 가지가 있습니다.

 

https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/arrays/single-dimensional-arrays

 

배열 선언하기 

데이터 형식 이름뒤에 []기호를 사용하여 선언한다 

배열에 저정된 데이터는 정수형 인덱스로 접근 가능하다 

배열에 있는 데이터는 for문이나 foreach문을 사용해 출력가능하다 

배열의 값을 생성하려면 new라는 키워드를 사용해 요소의 개수를 정의해야 한다 

 

데이터형식[] 배열이름 = new 데이터형식[크기];

 

1차원 배열 

 

1차원 배열을 선언

데이터형식[] 배열이름;

 

1차원 배열의 요소 값 대입 

배열이름[인덱스] = 값;

 

1차원 배열요소는 정수형 인덱스를 사용해 접근가능하다 

Console.WriteLine(배열이름[인덱스]);

 

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        //선언
        int[] arr;

        //인스턴스화 
        arr = new int[3];

        //요소에 값 할당 
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;

        //요소 출력 
        Console.WriteLine(arr[0]);
        Console.WriteLine(arr[1]);
        Console.WriteLine(arr[2]);

        //읽기/쓰기 가능 
        for (int i = 0; i < arr.Length; i++) 
        {
            Console.WriteLine(arr[i]);
        }

        //읽기 전용 
        foreach (int num in arr) 
        {
            Console.WriteLine(num);
        }

    }
}

 

 

 

 

배열의 다양한 초기화 방법

 

배열을 선언할 때 배열의 요소를 초기화할 수 있습니다. 
길이 지정자는 초기화 목록의 요소 수에 따라 유추되므로 필요하지 않습니다. 

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        int[] array1;
        array1 = new int[] { 1, 3, 5, 7, 9 };
    }
}

 

다음 코드와 같이 선언 시 배열을 초기화할 때 new 식과 배열 형식을 피할 수 있습니다. 
이를 암시적으로 형식화된 배열이라고 합니다.

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        int[] array2 = { 1, 3, 5, 7, 9 };
        string[] weekDays2 = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    }
}

 

배열 변수를 만들지 않고 선언할 수 있지만 이 변수에 새 배열을 할당할 때는 new 연산자를 사용해야 합니다.

다음과 같이 작성하면 안된다 

int[] array3;
array3 = new int[] { 1, 3, 5, 7, 9 };   // OK
//array3 = {1, 3, 5, 7, 9};   // Error

 

 

 

foreach문 

https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays

 

배열에 foreach 사용 - C# 프로그래밍 가이드

C#의 foreach 문은 배열의 요소 반복합니다. 1차원 배열의 경우 foreach는 늘어나는 인덱스 순서로 요소를 처리합니다.

docs.microsoft.com

foreach 문은 배열의 요소를 반복하는 단순하고 깔끔한 방법을 제공합니다.
1차원 배열의 경우 foreach 문은 인덱스 0으로 시작하고 인덱스 Length - 1로 끝나는 늘어나는 인덱스 순서로 요소를 처리합니다.

int[] numbers = { 4, 5, 6, 1, 2, 3, -2, -1, 0 };
foreach (int i in numbers)
{
    System.Console.Write("{0} ", i);
}
// Output: 4 5 6 1 2 3 -2 -1 0

 

 

 

 

 

 

 

https://www.w3schools.com/cs/cs_arrays.php

https://www.tutorialsteacher.com/csharp/array-csharp

 

 

 

 

다차원 배열 

차원이 2이상인 배열을 다차원 배열이라고 한다 

다차원 배열은 다음과 같이 선언한다 

데이터형식[행,열] 배열이름 

arr[0,0] arr[0,1] arr[0,2]
arr[1,0] arr[1,1] arr[1,2]

 

 

배열의 초기화 

int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// The same array with dimensions specified.
int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// A similar array with string elements.
string[,] array2Db = new string[3, 2] { { "one", "two" }, { "three", "four" },
                                        { "five", "six" } };

 

배열의 요소 접근 

// Accessing array elements.
System.Console.WriteLine(array2D[0, 0]);
System.Console.WriteLine(array2D[0, 1]);
System.Console.WriteLine(array2D[1, 0]);
System.Console.WriteLine(array2D[1, 1]);
System.Console.WriteLine(array2D[3, 0]);
System.Console.WriteLine(array2Db[1, 0]);

 

 

배열의 요소 출력 

// Getting the total count of elements or the length of a given dimension.
var allLength = array3D.Length;
var total = 1;
for (int i = 0; i < array3D.Rank; i++)
{
    total *= array3D.GetLength(i);
}
System.Console.WriteLine("{0} equals {1}", allLength, total);

 

 

순위를 지정하지 않고 배열을 초기화할 수도 있습니다.

int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

 

 

초기화하지 않고 배열 변수를 선언하도록 선택할 경우 new 연산자를 사용하여 변수에 배열을 할당해야 합니다. new 사용은 다음 예제에서 확인할 수 있습니다.

int[,] array5;
array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };   // OK
//array5 = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error

 

 

다음 예제에서는 특정 배열 요소에 값을 할당합니다.

array5[2, 1] = 25;

 

 

마찬가지로, 다음 예제에서는 특정 배열 요소의 값을 가져와 elementValue 변수에 할당합니다.

int elementValue = array5[2, 1];

 

 

다음 코드 예제에서는 가변 배열을 제외하고 배열 요소를 기본 값으로 초기화합니다.

int[,] array6 = new int[10, 10];
반응형