배열 : 같은 자료형의 변수들로 이루어진 유한집합으로 효율적인 데이터 관리가 가능하다.
정수형 배열의 선언과 생성
자료형 [ ] 배열명 = new 자료형 [길이]; //new는 공간을 할당해주는 역할
int [ ] arr = new int[4]; //방4개짜리 배열생성. 변수4개를 만든 것과 같음 (0123)
값의 대입
배열명 [index] = 데이터; //index는 항상 0번부터 시작
for(int i =0; i<4; i++) { //반복문 사용
arr[i]=(i+1)*100; //i번째 인덱스라는 뜻. 배열의 마지막 index 번호는 항상 크기 -1이다.
}
배열 출력
~println(배열명[index]);
for(int i =0; i<4; i++) {
System.out.println(arr[i]);
}
//100
200
300
400
**배열의 길이(크기)는 배열명.length 로 표현이 가능하다.
ex) for(int i = 0; i<arr.length; i++) {
arr[i]=(i+1)*100;
}
for(int i = 0; i<arr.length; i++) {
System.out.println(arr[i]);
}
**배열의 초기화 : 초기화리스트에 들어있는 요소의 개수만큼 컴파일러가 방을 생성함.
배열 선언과 동시에 초기화. 배열 생성 후에는 초기화리스트로 한번에 넣을 수 없으니 사용한다면 꼭 선언하면서 제시.
자료형 [ ] 배열명 = {값1, 값2, 값3 ... }
문자형 배열의 선언과 생성
자료형 [ ] 배열명 = new 자료형 [길이]; //new는 공간을 할당해주는 역할
char [ ] ch = new char[4]; //방4개짜리 배열생성. 변수4개를 만든 것과 같음 (0123)
값의 대입
배열명 [index] = 데이터; //index는 항상 0번부터 시작
ch [0]='j'; //0번째 인덱스
ch [1]='a'; //1번째 인덱스
ch [2]='v';
ch [3]='a';
배열 출력
~println(배열명[index]);
~println(배열명);
for(int i =0; i<4; i++) {
System.out.println(ch[i]);
}
//java
System.out.println(ch); //문자형 배열은 배열명만으로 출력 가능
//java
다차원배열
다차원 배열의 선언과 생성
자료형 [ ][ ] 배열명 = new 자료형 [1차원배열개수][1차원배열에 들어가는 요소개수];
int [ ][ ] arr = { {1,2,3}, {4,5,6} };
for(int i=0; i<arr.length; i++) { //2
for(int j = 0; j<arr[i].length; j++) { //3
System.out.print(arr[i][j]); //123456
}
}
**2차원 배열의 요소로서 들어가는 1차원 배열의 요소개수를 각각 따로 지정할 수 있다.
int [ ][ ] iArr = new int [3][ ];
iArr[0] = new int [3];
iArr[1] = new int [2];
iArr[2] = new int [4];
int n = 1;
for(int i = 0; i<iArr.length; i++) {
for(int j = 0; j<iArr[i].length; j++) {
iArr[i][j] = n++;
System.out.print(iArr[i][j]+" ");
}
System.out.println();
}
//123
45
6789
1️⃣ 배열 arr에 담긴 모든 값의 합을 출력하세요
int [ ] arr = {10,20,30,40,50};
int total = 0;
for(int i =0; i<arr.length; i++) {
total+=arr[i];
}System.out.println(total);
//150
2️⃣ 원하는 배열 크기를 scanner로 입력받고 입력된 값을 배열의 크기로 설정한다. 배열의 크기만큼 알파벳을 출력하세요
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int n = sc.nextInt();
char[] ch = new char[n]; //문자형배열 선언과 생성
char c = 'A';
for(int i = 0; i<n; i++) { //i<n대신 i<ch.length도 가능
ch[i] = c++; //값의 대입
System.out.print(ch[i]); //배열출력
}
//정수를 입력하세요 : 5
ABCDE
3️⃣ 정수형 변수 money에 10~5000사이의 난수를 발생시켜 넣는다. 단, 1의자리 숫자는 반드시 0이어야 한다.
발생된 난수를 500,100,50,10원짜리 동전으로 바꾸면 각 동전이 몇개씩 필요한지 판단하는 코드 작성하기
Random rnd = new Random();
int money = rnd.nextInt((500) + 1) * 10;
System.out.println("금액 입력 : "+ money + "원");
int[] coin = { 500, 100, 50, 10 };
for (int i = 0; i <coin.length; i++) {
int result = money / coin[i];
System.out.printf("%d원 : %d개\n", coin[i], result);
money %= coin[i];
}
//금액 입력 : 2690원
500원 : 5개
100원 : 1개
50원 : 1개
10원 : 4개
4️⃣ 1~45 사이의 난수를 발생시켜 로또번호 생성하기 (중복되지 않는 6개의 숫자)
// 로또번호 담을 배열 만들기
int[ ] lotto = new int[6];
// 랜덤값 범위 지정하기
Random rnd = new Random();
int number = rnd.nextInt(45) + 1;
// 로또번호 생성하기
label: for (int i = 0; i < lotto.length;) {
lotto[i] = rnd.nextInt(45) + 1;
// 중복 비교하는부분
for (int j = 0; j < i; j++) {
if (lotto[i] == lotto[j]) {
continue label;
}
}
System.out.print(lotto[i] + " ");
i++;
}
5️⃣ 2차원 배열에 담긴 모든 요소들의 합과 평균 구하기
int [ ] [ ] arr = { {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15},{16,17,18,19,20} };
int total = 0;
int count = 0;
for(int i = 0; i<arr.length;i++) { //nArr.length는 4임 인덱스갯수
for(int j = 0; j<arr[i].length; j++) { //nArr[i].length는 각 인덱스에 포함된 요소들의 개수 (다 다를수있음)
total+=arr[i][j];
count++; //반복문 돌때 같이 갯수세주기
}
}
System.out.println("총합 : "+total);
System.out.println("평균 : "+ (float)total/count);
//총합 : 210
평균 : 10.5
'JAVA' 카테고리의 다른 글
[JAVA] JAVA API 클래스 (Math 클래스, Calendar 클래스, Wrapper 클래스) (0) | 2023.08.22 |
---|---|
[JAVA] JAVA API 클래스 (String 클래스, StringBuilder 클래스) (0) | 2023.08.21 |
[JAVA] Random (0) | 2023.08.18 |
[JAVA] 기타제어문과 label (0) | 2023.08.18 |
[JAVA] 기타제어문 - break와 continue (0) | 2023.08.18 |