5. 배열
배열(Array)의 정의
배열은 같은 데이터 타입의 변수를 하나의 묶음으로 관리한다. 배열의 기본적인 형태는 다음과 같다.
int[ ] a = new int[ ];
만약 여기서 선언 시 배열 크기를 10으로 설정하고 싶으면 다음과 같이 작성한다.
int[ ] a = new int[9];
배열의 제일 처음이 0으로 시작하여 0,1,2,3,4,5,6,7,8,9로 10개가 생성된다.
배열의 내용
배열은 한번에 여러개의 데이터를 사용해서 각각 구분하기 위해선 주소를 사용해야된다.
주소의 기본적인 형태는 다음과 같다.
a[0] = 10; a[1] = 20, a[3] = 30;
public static void main(String[] args) {
int[] student = new int[3];
System.out.println("Now auto refresh value : " + student[0]);
student[0] = 30;
student[1] = 20;
student[2] = 10;
System.out.println("Now First value : " + student[0]);
}
결과값은
Now auto refresh value : 0
Now First value : 30
으로 콘솔창에 출력된다. 기본적인 성질은 변수와 같으므로 초기값이 0, 바뀐값이 30으로 출력된다.
다음은 5명의 학생의 성적을 받아와서 평균을 내는 프로그램이다.
public static void main(String[] args) {
int[] student = new int[5];
int sum = 0;
Scanner sc = new Scanner(System.in);
System.out.println("<Test Average Calculation>");
for(int i=0;i<student.length;i++)
{
sum += student[i];
}
float avg = sum/(float)student.length;
System.out.println();
System.out.printf("Test Average is %.1f.",avg); //실수형은 %f로 반환한다. %.1f 소숫점 한자리를 반환
System.out.println("Thank you For using this service");
}
결과값은
<Test Average Calculation>
Enter each 5 students score.
100
60
40
80
90
Test Average is 74.0.Thank you For using this service
다음과 같이 콘솔창에 출력되어 나온다
2차원 배열
그냥 배열이 1차원개념이였다면 2차원 배열은 2차원 개념으로 이해를 하면 좋다.
2차원 배열은 쉽게 말해 표라고 생각하면 된다.
[0],[0] 10 | [0],[1] 21 | [0],[2] 44 | [0],[3] 71 |
[1],[0] 30 | [1],[1] 42 | [1],[2] 98 | [1],[3] 33 |
다음과 같은 표가 있을 때, 앞서 말한 주소값을 x축 y축의 개념으로 사용한다.
주소와 주소에 있는 값을 헷갈리면 안된다. 만약 int [4][2] 2차원 배열에서 33값을 찾기위해선 [1],[3] 에 접근 해야한다.