본문 바로가기
Programming/C#

C# 반복문, 배열

by ahhang0k 2021. 4. 29.

break문

가장 가까운 반복문을 빠져나옴 (조건문 x)

 

continue문

조건식에 continue가 있으면 다시 위의 조건으로 올라가 확인을 한다.

 

 

 

배열

자료형이 동일한 여러개의 값을 연이어 저장할 수 있도록 하는 기억공간의 집합체

 

배열선언

C#은 배열의 []가 자료형 바로옆에 와야한다

 

1)배열선언과 메모리 할당을 따로 하는 경우

자료형 변수;

변수 = new 자료형[배열의 크기];

 

2)배열선언과 메모리 할당을 동시에 하는 경우

자료형[] 변수 = new 데이터형[배열의 크기];

 

3)배열의 선언과 동시에 값을 설정하는 경우

자료형[] 변수 = {값1, 값2, 값3,...};

 

 

 

new 키워드?

C++의 동적할당과 비슷한 개념이다. 

하지만 따로 소멸자를 써주지 않아도 된다.

ex) int[] i = new int[10]; (10은 개수)

i변수는 i의 주소값을 가지고 있고(주소값은 0번쨰 인덱스의 값을 의미) 

 

ex) i[5] = 10; 이면 i의 5번쨰방의 주소

 

 

배열의 길이

변수이름.Length;

 

 

Main메소드의 매개변수

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

namespace ConsoleApp1
{
    class Program
    {//프로젝트 파일에서 속성에서 디버그에서 명령줄인수를 조절 가능
        static void Main(string[] args) //args string타입의 배열임
        {
            if(args.Length != 2){
                Console.WriteLine("프로그램의 사용법");
                Environment.Exit(0);
            }
            String strNum1 = args[0];
            String strNum2 = args[1];

            int num1 = int.Parse(strNum1);
            int num2 = int.Parse(strNum2);

            int result = num1 + num2;
            Console.WriteLine(num1+ "+"+ num2 + "=" + result);
        }
    }
}

 

 

foreach

배열이나 나열의 각 원소를 순차적으로 접근하는데 유용한 for문

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

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] num = { 1, 2, 3, 4, 5 };
            String[] names = { "사과", "배", "바나나", "체리", "딸기", "포도" };
            int sum = 0;

            foreach (int k in num)
                sum += k;
            Console.WriteLine("합은" + sum);

            foreach (String s in names)
                Console.Write(s + "");
            Console.WriteLine();
        }
    }
}

 

 

2차원 배열 선언

ex)

int[ , ] a = new int[ , ] {{90,85,95},
                           {90,85,95},
                           {90,85,95},
                           {90,85,95},
};

ex)

int [ , ]a = int [2,3]; -> 2행 3열

 

정방형 배열

각 행의 열의 개수가 같은 배열

비정방형 배열

각행의 열의 개수가 다른 배열

비정방형 배열의 생성

int i[][];

i = new int[2][];

i[0] = new int[1]; -> 2행의 0번째 행에 1개의 열을 할당하겠다.

i[1] = new int[2]; -> 2행의 1번째 행에 1개의 열을 할당하겠다.

 

 

배열복사

(기본값은 0이 세팅이 되어 있다.)

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

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] oldArray = new int[3] { 1, 2, 3 };
            int[] newArray = new int[3];
            Array.Copy(oldArray, newArray, 2); //oldArray의 값 2개를 newArray에 넣어라 

            foreach (int k in newArray)
                Console.WriteLine(k);

            Console.WriteLine("--------------");

            Array.Resize(ref oldArray, 5);
            foreach (int k in oldArray)
                Console.WriteLine(k);
        }
    }
}

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

C# 메소드  (0) 2021.04.29
C# 배열 실습(비정방향 배열) 각 행에 값을 넣어 합을 출력  (0) 2021.04.29
C#  (0) 2021.04.28
C# 구구단 프로그램을 작성  (0) 2021.04.28
C# 제어문, 반복문 실습문제 5개  (0) 2021.04.27

댓글