관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

배열 1 - 배열 기초 본문

프로그래밍 언어/자바

배열 1 - 배열 기초

huenuri 2024. 8. 6. 22:54

남은 시간 동안 배열 학습을 진행해 보기로 했다. 오늘 저녁에 for문과 배열 보충 수업이 있으니 그전에 배열을 어느 정도 알고 가야 좋을 것 같았다. C 언어에서도 배열 학습을 진행했지만 거의 이해를 하지 못했다.

이 시간을 통해 배열을 확실히 짚고 넘어가야겠다. 기본 개념은 어느 정도 잡히겠지.


 

 

이론 1 - 배열

 


배열은 변수가 여러 개이고, 여러 개의 값을 가질 수 있는 변수이다. 이 성적들의 공통점은 무엇일까?

 

 

 

 

전체를 변수로 싶을 때 배열을 선언한다.

 

 

 

 

동일한 자료형의 값을 여러 개 저장하는 것이다.

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

배열을 선언할 때는 숫자를 명시해서는 안된다. 선언이 아닌 생성과만 관련이 있다. 이렇게 하면 오류가 발생한다.

 

 

 

scanner에서 처럼 new라는 키워드를 사용한다. 이 둘은 공통점이 있다. 둘 다 객체이기 때문에 생성을 해야 하는 것이다. 이 개념은 OPP에서 본격적으로 배우게 된다.
어제부터 OPP를 나갔는데 정말 어려웠다. 이 공부를 마치면 자바2에서 이런 부분을 학습해 볼 생각이다.

선언을 할 때는 배열의 길이를 명시하지 않지만, 생성을 할 때는 명시해준다.

 

 

 

우리가 설정하지 않아도 자동으로 초기값이 들어간다.

 

 

 

 

 

초기값은 자료형마다 다른데, 문자열에서 null은 다음과 같은 뜻을 내포한다.

  1. 할당되지 않았다
  2. 값이 없다

문자열은 맨 처음에 null로 초기화된다.

 

 

 

 

 

 

 

 


배열을 사용하기 위해서는 인덱스가 필요하다. 3개의 값을 직접적으로 접근할 때는 0부터 시작한다.

 

 

 

 

 

 

 

 

 

 

자료형 별로 이렇게 배열이 생성된다.

 

 

 

 

 

data[0] = 123; 첫 번째 값이다. 이것은 배열의 첫번째 칸에 123을 넣겠다는 의미이다.

 

 

 

 

 

 

 

 

 

 

배열의 변수 이름은 복수형을 사용하는 것이 좋다. 값을 입력 또는 할당하여 이런 식으로 표현할 수 있다.

 

 

 

 

 


값을 넣지 않은 배열은 null 값이 된다.

 

 

 

 

 

변수를 사용하는 사람은 몇 개인지 모르므로 배열의 길이를 출력해 볼 수 있다. length는 속성, 필드라고 한다.

 

 

 

 

 

 

 

 

 

 

배열의 길이가 170이므로 배열은 0부터 169까지 된다.

 

 

 

 

다른 방법으로 배열 사용하기

배열의 선언, 생성, 초기화를 한 번에 할 수 있다

예시에서는 new int[5] 등이 생략되었다. 이렇게 쓰면 변수의 타입을 바로 알 수 있고, 개수를 세지 않아도 컴파일러가 자동으로 계산해 준다. 그리고 값까지 초기화를 하여 한 줄에 표시할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 


이번 영상은 정말 길었지만 배열의 기본을 다룰 수 있는 정말 중요한 내용이었다.


 

 

퀴즈 1 - 배열에 대한 설명으로 옳은 것은?

 

  1. 맞다. 초기값을 따로 정해주지 않아도 0으로 자동 초기화된다.
  2. 하나의 자료형만 담을 수 있으며, 여러 자료형을 담는 것은 구조체이다.
  3. 선언할 때는 길이를 명시해서는 안된다.
  4. int date[] = new int[3];이라고 써야 한다.
  5. 배열의 인덱스는 0부터 시작한다.

 

 

 

 

 

 

 

처음에는 0이 아니라 아무것도 들어있지 않은 거였다. 0인 줄 알았다. 이 배열 선언 방법은 맞다고 한다.

 

 

 

 

 

배열의 선언과 생성 방법을 다시 한번 숙지해야 할 것 같다. 선언과 초기화가 헷갈린다. 선언은 그냥 자료형이 있다고 말해주는 거고, 초기화는 값을 넣어주는 것 같다.


 

 

실습 1 - 배열 생성과 출력

 

 

 

 

조금 어려웠지만 배운 것을 다시 훑어보며 혼자서 문제를 풀었다~


 

 

실습 2 - 배열 길이 확인하기

 

 


 

 

문제 풀기

 

 

1번은 맞았지만 2번은 틀렸다. 어떻게 푸는지 몰라서 영상을 참고해 보았다. 난 그냥 배열의 마지막 길이를 뺀 거였다. 이게 아니고 값을 구해야 한다.

 

 

 

 

이 문제는 다음에 다시 한번 풀어야겠다. 아직 혼자서 푸는 건 어려우니 연습을 많이 해야 할 것 같다~


 

 

학습을 마치고

오늘 새벽에는 이렇게 배열 첫 번째 단원까지 학습해 보았다. 배열과 반복문, for문 등이 있는데 이 부분은 보충수업 끝나고 집에 와서 공부해 봐야겠다. 이제 배열이 무엇인지 조금 알 것 같다.
그동안 배열을 공부하지 않은 게 아니고 수업도 듣고 책도 보며 동영상도 진짜 많이 시청하며 학습했는데 왜 아직까지도 배열을 알지 못했나 의문이 들었다.

 

그건 아마도 이해보다는 기억해서 문제를 풀고 코딩하는데 집중했기 때문인 것 같다. 개념을 확실히 짚지 않고 그저 문제만 푸는 것은 별 의미가 없다. 새로운 문제가 나왔을 때 풀지 못할 가능성이 크다. 이제 나머지 시간에는 얼마 남지 않았지만 어제 배운 HTML 공부를 해볼 것이다.