본문 바로가기
C#/C# 강의 정리

C# 배열

by 민트코코넛 2020. 12. 27.
728x90
반응형

§ 배열 §

using System;
// 1차원 배열 (선언 방법: 타입[] 변수 이름 = new 타입[5];)
class Program
{
	static void Main(string[] args)
    {
    	int[] arr = new int[5];
        arr[0] = 10;
        arr[1] = 30;
        arr[2] = 1;
        arr[3] = 20;
        arr[4] = 20;

		// 배열 크기를 명시하고(3) 초기화 ㄱ
        string[] array = new string[3] {"aaa", "bbb", "ccc"};

		// 배열 크기를 명시하지 않고(3) 초기화 ㄱ
        string[] array1 = new string[] { "aaa", "bbb", "ccc" };

		// 이것도 하나의 방법이긴 하지만 왠만하면 사용하지 말고 위 2개 거 쓰기 ㄱ
        string[] array2 = { "aaa", "bbb", "ccc" };

		System.Console.WriteLine(array[0]); // 출력하고 싶을 때 사용하기
    }
}

// 2차원 배열
class Program
{
	static void Main(string[] args)
    {
    	int[,] arr1 = new int[3, 2]; // 2차원 배열은 ','로 나눠줌
        arr1[0, 0] = 1;
        arr1[0, 1] = 2;
        arr1[1, 0] = 3;
        arr1[1, 1] = 4;
        arr1[2, 0] = 5;
        arr1[2, 1] = 6;

		int[,] ary1 = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
        int[,] ary2 = new int[, ] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
        int[,] ary3 =  { { 1, 2 }, { 3, 4 }, { 5, 6 } };

		// 출력방법 1 : foreach  ----- 가장 깔끔하고 간편한 방법. 배열 내에서 특정 값을 추출하려고 할 때, 그리고 모든 걸 다 출력하지 않고 딱 그 부분만 돌려보고 싶을 때 유용함 
        foreach (var item in arr1)
        {
        	System.Console.WriteLine(item);
        }

		// 출력방법 2 : 이중 for문
        for (int i = 0; i < arr1.GetLength(0); i++)
        {
        	for (int j = 0; j < arr1.GetLength(1); j++)
            {
            	System.Console.WriteLine(arr1[i, j]);
            }
        }
    }
}

// 3차원 배열
class Program
{
	static void Main(string[] args)
    {
    	int[,,] arr2 = new int[4, 3, 2]
        {
        	{  {1, 2}, {3, 4}, {5, 6}  },
            {  {1, 2}, {3, 4}, {5, 6}  },
            {  {1, 2}, {3, 4}, {5, 6}  },
            {  {1, 2}, {3, 4}, {5, 6}  },
        };

		//출력방법 1 : foreach
        foreach ( var item in arr2 )
        {
        	System.Console.WriteLine(item);
        }

		//출력방법 2 : 다중 for문
        for (int i = 0; i < arr2.GetLength(0); i++)
        {
        	for (int j = 0; j < arr2.GetLength(1); j++)
            {
            	for (int k = 0; k < arr2.GetLength(2); k++)
                {
                	System.Console.WriteLine(arr2[i, j, k]);
                }
            }
        }
    }
}

// 가변 배열 - 배열 안에 배열 있는 느낌
// 타입[][] 배열 이름 = new 타입 [길이][ ] 
class Program
{
	static void Main(string[] args)
    {
    	int[][] ary = new int[3][];
        ary[0] = new int[5] { 1, 2, 3, 4, 5 }; // { } 속 내용은 값 초기화 하는 거
        ary[1] = new int[3] { 6, 7, 8 };
        ary[2] = new int[] { 9, 10 };

		foreach (int[] item in ary)  // 특정 배열을 뽑아냄
        {
        	foreach (int i in item)
	        {
            System.Console.WriteLine(i);
            }
        }
    }
}

§ 배열 예제 §

using System;

// 2 개의 정수를 입력 받은 후, 둘 중에서 큰 수를 출력하는 프로그램 작성
class MyClass
{
	static void Main(string[] args)
    {
    	int num1, num2;
                    
        Console.WriteLine("2개의 숫자를 입력하세요. \n");
        num1 = int.Parse(Console.ReadLine());
        num2 = Convert.ToInt32(Console.ReadLine());
        if ( num1 > num2 )
        {
        	Console.WriteLine(num1);
        }
        else
        {
        	Console.WriteLine(num2);
        }
    }
}

// 0 ~ 100 사이의 정수를 입력 -> 90 ~ 100 (A), 80 ~ 89 (B), 70 ~ 79 (C), 60 ~ 69 (D), else F 출력
// + 조건 : 0 ~ 100 범위 이탈 시, 재 입력 요구
class MyClass
{
	static void Main(string[] args)
    {
    	int num1;
        Console.WriteLine("0 ~ 100 사이의 값 한개를 입력하세요.");
        num1 = Convert.ToInt32(Console.ReadLine());

		do
        {
        	Console.WriteLine("0 ~ 100 사이의 값 한개를 입력하세요.");
        	num1 = Convert.ToInt32(Console.ReadLine());
        } 
        while (num1 < 0 || num1 > 100);

		if (num1 >= 90)
        {
        	if (num1 == 100)
            {
            	Console.WriteLine("A+");
            }
            else
            {
            	Console.WriteLine("A");
            }
        }
        else if (num1 >= 80 )
        {
        	Console.WriteLine("B");
        }
        else if (num1 >= 70)
        {
        	Console.WriteLine("C");
        }
        else if (num1 >= 60)
        {
        	Console.WriteLine("D");
        }
        else 
        {
        	Console.WriteLine("F");
        }
        else if(num1 > 100 || num1 < 0)
        {
            Console.WriteLine("잘못 입력하셨습니다. 범위내에서 입력하세요");
            num1 = Convert.ToInt32(Console.ReadLine());
        }
    }
}

'C# > C# 강의 정리' 카테고리의 다른 글

C# 매개 변수 ref, out, method overloading  (0) 2020.12.27
C# 제어문  (0) 2020.12.27
C# 함수  (0) 2020.12.27
C# mutable type, immutable type  (0) 2020.12.27
C# 문자열  (0) 2020.12.27