본문 바로가기
자바(Java)

자바 입문하기5 - 배열

by codeyaki 2022. 1. 7.
반응형

프로그래머스 강의를 들으며 정리한 것입니다.

https://programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr


배열 

같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료구조

 

  • 생성 방법
    -정수 4개를 저장할 수 있는 배열
    int[] array1 = new int[4];
    -선언과 동시에 초기화하는 방법
    int[] array2 = new int[] {1,2,3,4};
    int[] array3 = {1,2,3,4};​
  • 배열에 값을 저장하는 방법(배열의 인덱스는 0부터 시작함.)
    array1[0]= 1;
    array1[1]= 2;
    array1[2]= 3;
    array1[3]= 4;​
  • 배열에 저장된 값을 꺼내서 사용하는 방법
    int value = array1[2];
    System.out.println(array2[3]); // 4 ​

배열 사용

for반복문으로 배열 사용하기

왜? 배열이 작을 땐 하나하나 사용해줄 수 있으나 배열의 크기가 커질수록 비효율적

int[] iarray = new int[100];
for(int i =0; i<100; i++) {
	iarray[i] = i;
}

문제점 : 배열의 크기가 변할 때마다 for문안의 i의 범위를 계속 다시 정해주어야 함

해결 방법 : for문의 인덱스의 범위를 배열의 크기로 지정해놓으면 됨( array.length )

int[] iarray = new int[100];
for(int i =0; i<iarray.length; i++) {
	iarray[i] = i;
}

예시: 배열에 1부터 100까지 저장한 뒤 배열에 저장된 값을 모두 더하기

int[] iarray = new int[100];
for(int i =0; i<iarray.length; i++) {
	iarray[i] = i+1;
}
int sum = 0;
for(int i=0; i<iarray.length; i++) {
	sum += i;
}
System.out.println(sum);

>> 4950


여기서 각 for문에 i를 두 번 썼는데 문제가 왜 없지?

: {}로 이루어진 블록 안(스코프)에서 생성된 변수는 해당 블록에서만 사용 가능하면 해당 블록을 벗어날 시 제거된다!!

==> 지역변수

만약 위 코드에서 sum을 두 번째 for문안에서 만든다면? 

: for문이 작동할 때마다 새로 sum함수가 만들어지게 되고 for문이 종료할 때 사라지게 때문에 오류가 발생!!

int[] iarray = new int[100];
for(int i =0; i<iarray.length; i++) {
	iarray[i] = i+1;
}

for(int i=0; i<iarray.length; i++) {
	int sum = sum + i;
}
System.out.println(sum);

>> 오류 발생!!

System.out.println(sum); 에서의 sum은 없는 변수이기 때문! (for문안의 int sum은 해당 for문에서만 사용되고 사라짐)

반응형