본문 바로가기
> 프로그래밍 언어/JAVA

[그림으로 배우는 자바, part1]: 08 배열

by 자몽주스 2023. 2. 26.
728x90
반응형

그림으로 배우는 자바,

파트1: 입문!

 

배열

참고 사이트:

자바, 입문하기! | CloudStudying

 

배열, 여러 값들을 하나로 묶기!

< 배열 >

:  타입의 일종으로

여러 데이터를 하나로 묶은 것

(책꽂이)

데이터들이 정리되지 않은 채

변수화만 되어있다면

사용하기 불편하기 때문에

 

=> 배열을 이용

 

  - 배열생성방법 - 

1) 중괄호로 감싸서

들을 담아둔다

 

컴퓨터 메모리에는 

아래와 같은 값들이 생겨나게 된다

2) 해당 값들에 대한 이름을 정해준다 

(변수명)

ex) students

 

3) 타입을 정해준다

단순히 int 가 아닌

int 의 배열이므로

대괄호를 넣어서

배열임을 나타내준다

 

배열을 만들었으니

반복문을 통해 출력을 해본다

10명 학생의 점수를 출력할 것이기에

for문을 사용하면,

(students 에 i 번째 위치 값을 가져다 사용함)

i 가 0번 위치일 땐 88점

1번 위치일 땐 98점

9번위치 일땐 68점

 

첫 시작 위치가

0번 부터인 것을 주의하기

- 배열 특징 -

1) 모두 타입이 같아야 함

2) 순서가 있다

배열은 index 라는 순서가 존재

= 시작 위치가 0부터

배열의 생성과 사용

 

- 배열의 생성 -

중괄호 안에다가 원하는 값들을

콤마(,) 로 구분지어서

담은 상태로 배열을 만듦

 

만든 배열을 score 라는 변수에 대입함

 

타입만들 때 주의하기:

int 타입인데 배열이라는 것을 나타내기 위해서

[] 대괄호를 사용한다

 

문자열 배열도 마찬가지로 사용해준다

이렇게 만든 배열은 인덱스를 통해서 사용이 가능

인덱스: 배열의 위치 정보

 

배열과 반복문

- 총합을 구하는 예제 -

배열은 반복문이랑 같이 활용되기도 한다

 

1) 변수 생성

총합 변수 sum이 초기값으로 0을 담고있음

 

2) 반복문 사용해서 합 계산

i 가 0 일 때

scores  0 번째 인덱스인 88을 더해준다

sum에다가 더해줌

sum += scores[i];

 

그럼 sum 이 88 이되고

i ++되면

인덱스 1번인 76을 가리키게 된다

인덱스 1번인 76을

sum 에다가 넣으면

86 에다가 76이 더해지게 된다

 86 + 76

 

이게 반복돼서 6번째 인덱스까지 오면

82까지 더해지게 된다

그래서 총합인 Sum 의 값은 509가 나오게 됨

- 반복문 사용하는 예제 -

1) 변수생성

월화수목금 시간이 담긴

runningMinutes 라는 배열이 만들어져있음

총합을 구하기 위한 sum 도 확인 가능

int sum = 0;

 

2) for 문을 사용해서 총합 계산

인덱스가 0 ~ 4까지니까

i는 0 부터 5보다 작을 때까지로 설정해준다

(5는 배열의 갯수로 보면 됨)

sum을 runningMinutes 의 i 번째 값을 더해서 넣어줌

 

 반복해서 더해주다가 끝나면 반복문을 탈출해서

average를 계산하게 된다

 

3) 평균값 구하기

= 총합 / 개수

5로 나누면 소숫점 이하가 버려지기 때문에

5.0으로 나눠준다

< 배열의 길이 >

배열의 길이는 length 라는 키워드를 사용

courses 라는 문자열 배열의 길이는 3이다

 

courses라는 배열에다가

length라는 키워드를 사용하면

길이 3 을 구할 수 있음

length 키워드는 모든 배열을 순회할 때

즉, 반복문을 사용해서 순회할 때 활용 가능

 

length 라는 키워드를 사용해서 3을 넣지 않고도

 직접 배열의 갯수를 파악하지 않더라도

자동적으로 파악할 수 있게 된다

벗어난 인덱스, 배열과 파라미터

 

 배열의 타입이 int

길이가 5이기 때문에

마지막 인덱스의 번호

5-1 (N-1) 이돼서

4가된다

 

배열의 범위를 벗어나지 않도록 주의해야한다

총 인덱스는 3 까지이다

인덱스는 3까지밖에 없는데

 

문제를 보면

names[-1] 하고

names[4]를 출력하고 있다

 

인덱스의 시작은 0 부터임

이렇게 3까지 출력해야 함

- 두 번째 예제 -

배열 또한 파라미터로 전달될 수 있음

 

average 메소드에서 파라미터 타입을

배열로 선언해줘야한다

 

728x90
반응형