코딩이란 무엇일까

[Java/자바] 배열(1) (Array) 선언 및 사용방법 본문

Java

[Java/자바] 배열(1) (Array) 선언 및 사용방법

둥구는 지굴다 2022. 9. 23. 16:34

안녕하세요! 오늘은  Java에서 사용되는 배열에 대해 알아보겠습니다~

배열이란?

배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해 놓은 자료구조입니다.

인덱스(index)란?

배열에서는 인덱스란 단어를 많이 사용하는데 인덱스는 배열의 위치 값을 의미합니다.

쉽게 생각해서 각각의 요소들의 방 번호?라고 생각하시면 쉽습니다.

위의 사진을 보면 배열의 길이(length)는 7이지만

인덱스(index) 값은 0부터 시작해 6으로 끝납니다. 

인덱스의 값은 항상 0으로 시작하기 때문에 배열의 길이 하고 헷갈릴 수 있으니 조심하셔야 합니다.

배열의 사용 목적

그렇다면 배열은 왜 사용할까요?

같은 타입의 변수들의 관리를 편하게 하기 위해서입니다.

예를 들어 100개의 정수 형태를 선언하고 초기화한다 생각해봅시다.

int a=1;int b=2; int c=3;..... int z=100; 이렇게 엄청나게 많은 코드를 잡아먹고 또 사용을 할 때면 또 찾아가서 해야 되고.. 관리하기도 어렵고 코드도 엄청 길어지겠죠? 따라서 자료형이 같은 변수들의 관리를 용이하게 하기 위해서 배열을 사용한답니다.

배열의 사용방법

배열의 선언 

타입 [ ] 배열명;    ex) int [ ] arr;

배열의  생성

배열명 = new 타입[길이]     ex) arr= new int [3]

 

배열의 선언과 생성을 동시에 하는 초기화

타입 [ ] 배열명 = new 타입[길이]  

ex) int [ ] arr = new int [3];

 

 

자료형에 따른 배열의 초기 값

배열 생성 시 배열의 값은 배열의 타입에 해당하는 기본 값으로 초기화되어있습니다.

배열을 만든 뒤 아무 값도 넣지 않는다면 초기 값이 설정되어 있다는 말이죠!!

                                                                  정수형 배열의 초기 값 ⇒ 0
                                                                  문자형 배열의 초기 값 ⇒ ‘ ‘
                                                                 실수형 배열의 초기 값⇒0.0
                                                                 문자열 배열의 초기 값⇒ Null

배열 생성 예시

public class Array_1 {

	public static void main(String[] args) {
		//배열을 사용하여 출력
		int scores[];
		scores=new int[3]; 
		scores[0] =100;
		scores[1]=80;
		scores[2]=70;
		System.out.println("1 번째 학생의 점수:"+scores[0]+"점");
		System.out.println("2 번째 학생의 점수:"+scores[1]+"점");
		System.out.println("3 번째 학생의 점수:"+scores[2 ]+"점");
	}

}

int scores [ ];배열을 선언한 뒤

new 연산자로 배열을 생성해 줍니다.

scores [0] =100;
scores [1]=80;
scores [2]=70;

각각의 배열의 인덱스 값에 변수처럼 값을 넣어줄 수 있습니다.!!

넣어준 값을 출력해 보겠습니다.

출력 결과

for문을 사용하여 배열의 값을 출력해 보기

위의 예시를 보면 알겠지만

System.out.println("n 번째 학생의 점수:"+scores [0]+"점");

이 부분이 반복되는 것을 알 수 있습니다.

따라서 for문을 사용해 반복해 볼 것입니다.

public class Array_1 {

	public static void main(String[] args) {
		//배열을 사용하여 출력
		int scores[];
		scores=new int[3]; 
		scores[0] =100;
		scores[1]=80;
		scores[2]=70;
	
		
		//for반복문을 사용해서 출력
		for(int i=0; i<3; i++) {
			System.out.println(i+1+" 번째 학생의 점수:"+scores[i]+"점");
		}
		
		
	}

}

위의  부분은 다 똑같지만 for문을 한번 봐보시다.

scores [i]는 인덱스 값을 의미합니다. 

따라서 i는 0,1,2까지 증가하고 반복문을 종료할 것입니다.

scores [0] 번째 인덱스, scores [1] 번째 인덱스, scores [2] 번째 인덱스 값이 출력이 될 것입니다.

따라서 배열을 for반복문을 통해 출력할 수 있다는 것도 알 수 있습니다.

배열 예시_2

이번 예시는 학생의 시험 점수를 배열 안에 넣고 평균을 구하는 코드입니다.

public class Array_3 {

	public static void main(String[] args) {
		int[] students= {100,95,90,88,93};
		int sum=0;
		for(int i=0; i<students.length;i++) {
			sum+=students[i];
		}
		//정수/정수 = 정수가 나오기 때문에
		//실수 값이 나오려면, 정수/실수 따라서 (float)로 강제 형변환을 해주었다.
		System.out.println("시험 점수의 평균:"+sum/(float)students.length);
	}

}

int [] students= {100,95,90,88,93};  => 학생의 점수를 넣을 배열을 만들어 줌과 동시에 값을 넣어 초기화를 시                                                                켰습니다.

int sum=0; => 평균을 구하기 위해서는 점수들의 합을 해주어야 하기 때문에 점수들의 합을 넣어줄 변수를 생성해주었습니다.

for(int i=0; i <students.length;i++) {


sum+=students [i];                    => 배열. length는 배열의 길이를 뜻합니다. 즉, 배열의 길이만큼 for문을                                }                                  반복하라 라는 의미입니다. sum+=students [i]를 풀어서 해석하면
                                                          sum=sum+studnts [i]입니다. 배열마다의 값을 더해줄 수 있겠죠

 

System.out.println("시험 점수의 평균:"+sum/(float) students.length); =>  점수를 합한 변수인 sum / (float)는  평균은 실수로 구해야 하기 때문에 강제 형 변환을 해주었고 students.lengt 배열의 길이만큼 나누어주면 평균이 나오겠죠?                                              

 

  • 배열명. length => 배열의 길이를 구할 수 있습니다.
  • Arrays.toString(배 열명) => 배열의 요소를 문자열로 출력할 때 쓰는 함수입니다.

이상으로 오늘 배열 포스팅 마치겠습니다.ㅎㅎ 글 읽어주셔서 감사합니다~

Comments