배운 내용
- 배열
- 배열복사
- 정렬
- swap
1. Array(배열)
배열은?
여러개의 데이터 값을 하나의 데이터로 모아 사용한다.
배열의 특징
- 많은 변수들을 하나의 변수로 해결할 수 있다.
- 주소값이 있다면 언제든 그 주소를 사용할 수 있다.
- reference = 참조 = 주소값
- [] -> 배열을 의미
배열의 단점
- 한가지의 데이터타입 밖에 넣을 수 밖에 없다.
- 한 번 생성 하면 더 이상 늘어나지 않는다.
어제도 배열을 배웠지만 중요한 부분이기도 하고 숙달이 필요한 부분이기 때문에 추가로 학습하였다.
- 먼저 arr3 배열을 1~5로 바로 생성한다.
- 배열 안 정수 1과 2의 위치를 바꾸기 위해서 swap이라는 메소드를 만든다.
- 배열에 위치한 2개 idx1,2 의 변수를 선언하고 temp를 활용해 idx1를 삽입, 빈 idx1에 idx2를 삽입하고 idx2 자리에 temp에 넣어둔 idx1을 삽입하여 위치를 바꾸어준다.
- swap메소드를 main메소드에 호출하고 for문을 이용하여 배열을 출력한다.
- 1~5까지 선언된 배열을 5~1 순으로 swap 해야한다.
- 먼저 swap 하기 위한 반복을 해야하니 for문을 사용하여 0부터 2까지 반복하게끔 실행한다. 이유는 3은 위치를 바꿀 필요가 없기 때문이다.
- arr.length에 0일 때 4, 1일때 3과 바꾸어야 하기 때문에 -1를 넣어준다.
- 이제 출력을 하기 위해 arr[0]부터 arr[4]까지 출력시켜준다.
이제 알아볼 배열은 2차원 배열이다. 1차원과는 다르게 이해하기 난해하고 이중for문을 사용해야하는 등 복잡한 계산이 많아진다.
- 2차원 배열을 선언하는 방법으론 예제에 설명한 총 3가지 방법과 같다.
- 여기서 동시에 실행하는 방법을 풀이해보면, 저기서 나타낸 큰 중괄호 안에 3개의 중괄호는 1차 배열이라고 생각하면 된다. 1차 배열이라는 가방 안에, 2차 배열에 해당되는 숫자들이 들어간 공들이 있다고 생각하면 된다.
- 2차 배열을 출력하기 위해선 이중 for문을 이용하여 i값을 1차 배열을 불러 0부터 2까지 반복하게 하고, 2차 배열을 j값으로 선언한 후 1차 배열 안의 2차 배열값을 불러내야하므로 arr[i].length로 선언한다.
- arr[i][j]로 출력하면 숫자들이 출력될 것이다.
- 먼저 준비된 사항은 키보드입력, String으로 각 과목, 총점, 평균을 구하라는 배열이다.
- 2차원 배열을 만들 때 학생이 2명이니 1차원에 2를, 5가지가 출력이 되어야 하니 2차원에 5를 선언한다.
- 배열을 초기화 하는 과정으로 이중 for문을 이용하여 i는 학생이므로 3보다 작게, j는 세 과목을 입력해야 하므로 3보다 작게 선언한다.
- Scanner를 이용하여 arr[i][j]로 학생별 과목 입력을 키보드로 실행하고 입력받는다.
- 이제 총점을 입력받기 위해 총점은 arr[i][]의 arr[][3]에 위치하고 있으므로 arr[i][3] += arr[i][j] 로 선언한다.
- 평균을 입력받으려면 총점에서 /3을 해주면 되기 때문에 arr[i][4] = arr[i][3]/3 이다.
- 값을 다 구했으니 출력을 하기 위해 이중 for문을 이용하여 출력한다.
'KOSTA' 카테고리의 다른 글
KOSTA 교육(객체지향, 생성자, 접근제어자, 예외) (0) | 2021.02.18 |
---|---|
KOSTA 교육 (객체지향 , 생성자, 배열) (0) | 2021.02.18 |
KOSTA 교육 (객체지향, 생성자) (0) | 2021.02.16 |
KOSTA 교육 (Method, 배열, while, do~while, for, break, continue) (0) | 2021.02.09 |
KOSTA 교육 (메소드, 배열, 정렬, 변수, 데이터타입, 형변환, 연산자, if/else, switch) (0) | 2021.02.08 |