본문 바로가기
메타버스기반게임콘텐츠기획/스터디(C#이 보이는 그림책)

1장, 기본적인 프로그램 (1-2)

by Queenut 2021. 11. 16.

* 배열

배열: 같은 형의 변수 여러 개를 하나로 모은 것. new로 선언. new 다음에는 =이 붙지 않는다?

 

int [] a = new int [4];

요소수: 배열의 크기. 적지 않아도 상관 없음. 배열명

첨자: 0부터 시작하는 배열의 인덱스 번호. 0에서 시작하므로 요소수보다 1만큼 작다.

요소: 각 요소에 대한 참조는 a[0], a[1], ....

 

선언과 동시에 초기화하려면 { } 안에 값을 입력한다.

int [] a = new int [] {1,2,3,4};

{ } 안의 데이터가 몇 개냐에 따라 요소수 결정.

→ int [] a = {1,2,3,4}; 로 줄여쓸 수 있음.

n을 1로 정의했기 때문에 2가 출력된걸까?, n에는 4가 들어갈 수 없다.
string으로 활용. a[n]은 쓸 수 없었다. 
「C#이 보이는 그림책」 p35 예제와 string으로 활용

 

 

 

 * 다차원 배열   ***********************(수정필)

 다차원 배열: 두 개 이상의 차원을 가진 배열.

 

1차원배열: int [] a = new int [3];

2차원배열: int [ , ] a = new int [2,3];

3차원배열: int [ , , ] a = new int [2,2,3];

x방향()의 요소수, y방향()의 요소수, z방향의 요소수

어라?

Q. 그림 상, x는 행, y는 열이다.

그렇다면 값 30이 나오기 위해선

x = 1, y = 0 이어야 한다.

 

하지만 a[1,0]의 값이 30이다.

그렇다면 표시하는 값의 순서는 x, y, z인건가?

 

배열 대입은 int [ z, y, x ] 인데

결과 표시는 a[ x, y, z ] 순인걸까?

 

 

(*잠깐 팁) 역슬래시(/의 좌우대칭)는 \로 표현한다^^ 이런거나 알려주지 뭔지 한참 찾았네^^

\n 한 줄 내리기(다음 행으로 이동), newline
\t tab 들여쓰기, tab
\r 캐리지 리턴(줄의 시작으로 이동), carriage-return
\' 작은 따옴표 문자 하나 출력
\" 큰 따옴표 문자 하나 출력

 

「C#이 보이는 그림책」 p37 예제

 

 

재그(jag) 배열: 각 방향의 요소수가 서로 다른 다차원 배열.

표시 방법은 (배열명)[(행)],[(열)]
재그 배열을 선언과 동시에 초기화 하기

 

 

 

* length : 배열의 요소 수 구하는 연산자

 

배열에서: int [] a = new int [4];

             int b = a.length;

             도출되는 b의 값은 4

 

다차원 배열에서: int [ , ] a = new int [3,2];

                       int b = a.length;

                       도출되는 b의 값은 6 (전체 요소의 수)

 

재그 배열에서: int [] [] a = new int [] []

                    {

                          new int [] {1,2,3},

                          new int [] {4,5}

                     };

                     int b = a.length;

                     int c = a[1].length;

                     도출되는 b의 값은 3(a[0]으로 간주한다), c의 값은 2 (즉, 각 행의 요소 수를 구한다.)

 

 

 

 

초보가 생각하는 배열의 주의할 점

1. new 다음에 들어갈 요소들은 =으로 집어넣지 않는다.

2. [ ] 안의 요소수는 꼭 넣지 않아도 된다. 뒤에 { } 로 요소를 제대로 표현한다면.

3. 요소를 { } 로 잘 표현했다면 줄을 바꾸기 전에 반드시 , 로 끝마쳐야 한다. ( ; 가 아니다! 이건 문단이 끝났을 때!)