반응형
프로그래머스 강의를 들으며 정리한 것입니다.
https://programmers.co.kr/learn/courses/5
배열
: 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료구조
- 생성 방법
-정수 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문에서만 사용되고 사라짐)
반응형
'Language > Java' 카테고리의 다른 글
자바 입문하기7 - for each (0) | 2022.01.07 |
---|---|
자바 입문하기6 - 이차원 배열 (0) | 2022.01.07 |
자바 입문하기4 - 피라미드 만들기 (0) | 2022.01.07 |
자바 입문하기3 - 반복문 (0) | 2022.01.06 |
자바 입문하기2 - 조건문 (0) | 2022.01.06 |