기초 JAVA 6강 - 배열
배열
- 여러 개의 값을 하나의 변수에 저장해서 사용하는 것이다.
- 참조형 타입이다.
- 인덱스로 값을 구분한다.
- 길이를 변경할 수 없다.
데이터 중의 하나,
데이터 타입 뒤에 []를 붙여서 사용.
int[] array; // 배열의 주소를 저장할 공간이 만들어진다.
-
배열 초기화방법 1)
array = new int[5]; // 배열이 생성되고 그 주소가 저장된다. - int[5] : 5개의 int를 저장할 주소가 변수 안에 저장됨.
array(변수) = 100번지(주소)
100번지 = 첫번째 저장된 값의 주소
(0,0,0,0,0)
=> 길이만 저장됨. -
초기화방법 2)
array = new int[]{1, 2, 3, 4, 5}
=> 길이와 값까지 저장됨. -
초기화방법 3)
int[] array = {1, 2, 3, 4, 5};
=> 선언과 초기화를 동시에 해야함.
System.out.println(array);
=> 출력되는 값 = 배열의 주소
인덱스 - 변수 뒤의 대괄호[]안에 숫자를 붙이면 됨, 배열 안에 들어가 있는 순서이며 0부터 시작함.
System.out.println(array[0]);
=> 출력되는 값 = 배열 array의 0번째 위치한 값을 출력.
한 줄 복사 단축키 : Ctrl + Alt + 방향키(위/아래)
array.length;이 배열의 크기가 몇 인지 알 수 있는 메서드.
for(int i = 0; i < array.length; i++){
array[i] = (i + 1) * 10;
System.out.println(array[i]);
}
Q1) 10개의 정수를 저장할 수 있는 배열을 선언 및 초기화 해주세요.
int[] array = new int[10];
Q2) 배열의 모든 인덱스에 1 ~ 100 사이의 랜덤한 값을 저장해주세요.
for(int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() * 100) + 1
}
** Arrays.toString(a) : 배열에 있는 모든 값을 문자열로 만들어서 돌려주는 메서드
() 안에 들어가는 것이 반드시 배열이어야 함.
Q3) 배열에 저장된 모든 값의 합계와 평균을 출력해주세요.
int sum = 0;
for(int i = 0; i < a.length; i++){
sum += a[i];
}
double avg = (double)sum / a.length;
System.out.println("합계 : " + sum + " 평균 : " + avg);
Q4) 배열에 저장된 값들 중 최소값과 최대값을 출력해주세요.
int min = a[0], max = a[0];
int temp = 0;for(int i = 0; i < a.length; i++){
temp = a[i];
if(temp < min) min = temp;
if(temp > max) max = temp;
}
System.out.println("최소값 : " + min + " /최대값 : " + max);
Q5) 배열의 값을 섞어주세요.
int[] shuffle = new int[10];
for(int i = 0; i < shuffle.length; i++){
shuffle[i] = i + 1;
}
System.out.println(Arrays.toString(shuffle));
for(int i = 0; i < shuffle.length 10; i++){
int random = (int)(Math.random() shuffle.length);int b = shuffle[0];
shuffle[0] = shuffle[random];
shuffle[random] = b; }System.out.println(Arrays.toString(shuffle));
오늘의 과제 : 1 ~ 10 사이의 랜덤값을 500번 생성하고, 각 숫자가 생성된 횟수를 출력해주세요.
1이 몇 번 발생되었는지, 2가 몇 번 발생되었는지 횟수를 카운트해서 출력
나의 답 )
int n1 = 0, n2= 0, n3= 0, n4= 0, n5= 0, n6= 0, n7= 0, n8= 0, n9= 0, n10= 0;
int[] array = new int[500];
for(int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() * 10)+ 1;
if(array[i] == 1) n1++;
if(array[i] == 2) n2++;
if(array[i] == 3) n3++;
if(array[i] == 4) n4++;
if(array[i] == 5) n5++;
if(array[i] == 6) n6++;
if(array[i] == 7) n7++;
if(array[i] == 8) n8++;
if(array[i] == 9) n9++;
if(array[i] == 10) n10++;
}
System.out.println("1 :" + n1 + "번/ 2 :" + n2 +"번/ 3 :"+ n3 +"번/ 4 : "+ n4 +"번/ 5 :"+ n5 +"번/ 6 :"+ n6 +"번/ 7 :"+ n7 +"번/ 8 :"+ n8 +"번/ 9 :"+ n9 +"번/ 10 :"+ n10 + "번");
System.out.println(n1+n2+n3+n4+n5+n6+n7+n8+n9+n10);
두번째 답
int[] array = new int[500];
int[] b = new int[10];
int[] c = new int[10];
for(int i = 0; i < b.length; i++){ //b = {1,2,3,4,5,6,7,8,9,10}
b[i] = i + 1;
}
for(int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() * b.length)+ 1;
for(int j = 0; j < b.length; j++){
if(array[i] == b[j]) c[j] += 1;
}}
System.out.println(Arrays.toString(c));
선생님 답
int[] counts = new int[10];
for(int i = 0; i < 500; i++){
int random1 = (int)(Math.random() * 10) + 1;
counts[random1 - 1]++;
}
for(int i = 0; i < counts.length; i++){
System.out.println(i + 1 +"의 발생횟수 : " + counts[i]);
Author And Source
이 문제에 관하여(기초 JAVA 6강 - 배열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gksmf6699/기초-JAVA-6강-배열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)