반응형
02.15(월)
오늘은 저번 과제였던, random 게임 실습 복습 후 배열을 배움
[ 배열 ]
- 동일한 자료형을 가지는 변수들의 집합 / 동일 자료형의 묶음
- 저장된 값마다 index 번호가 설정됨 ( 0부터 시작 )
- 배열의 선언 : 주소 값을 가지지 않은 변수 생성 ( Stack )
int[] arr; // 자료형 [] 변수명
int arr[]; // 자료형 변수명 []
- 배열의 할당 : 배열 객체 생성 후 변수에 주소 값 할당 ( Heap )
// 변수명 = new 자료형[저장할 데이터 개수];
arr = new int[5]; // 정수 5개 저장할 수 있는 배열
int[] arr = new int[4]; // 정수 4개를 저장할 배열 생성
- 배열의 초기화
배열을 선언 후 할당하면 각 자료형 별 기본값이 들어감 ex) 숫자형 변수 : 0, boolean : false, char : '' 등
배열명[index]가 하나의 변수명이라고 생각하면 됨
// 1번
int[] arr = new int[10]; // 길이가 5인 정수형 배열 선언
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[5] = 6;
arr[6] = 7;
arr[7] = 8;
arr[8] = 9;
arr[9] = 10;
// 2번
int[] arr2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 3번
int[] arr3 = new int[10];
for (int i = 0; i < 10; i++) {
arr3[i] = i + 1;
}
[ 실습 ] - 배열 및 버블정렬
// 실습 1
public void exam1() {
String[] fruitArr = { "딸기", "복숭아", "키위", "사과", "바나나" };
// 1-1
System.out.println("1-1 배열 인덱스를 이용해서 바나나 출력");
System.out.println(fruitArr[4]);
// 1-2
System.out.println("1-2 for문을 쓰지 않고 전체 출력");
System.out.println(fruitArr[0]);
System.out.println(fruitArr[1]);
System.out.println(fruitArr[2]);
System.out.println(fruitArr[3]);
System.out.println(fruitArr[4]);
// 1-3
System.out.println("1-3 for문을 이용하여 전체 출력");
for (int i = 0; i < fruitArr.length; i++) {
System.out.println(fruitArr[i]);
}
}
// 실습 2
public void exam2() {
int[] arrNum = new int[100];
for (int i = 0; i < arrNum.length; i++) {
arrNum[i] = i + 1;
System.out.println(arrNum[i]);
}
}
// 실습 3
public void exam3() {
Scanner sc = new Scanner(System.in);
int[] subjectArr = new int[4];
System.out.print("국어 점수 : ");// 국어 점수
subjectArr[0] = sc.nextInt();
System.out.print("영어 점수 : ");// 영어 점수
subjectArr[1] = sc.nextInt();
System.out.print("수학 점수 : ");// 수학 점수
subjectArr[2] = sc.nextInt();
subjectArr[3] = subjectArr[0] + subjectArr[1] + subjectArr[2]; // 합계
System.out.println("===== 성적 =====");
System.out.printf("국어 점수 : %d\n영어 점수 : %d\n수학 점수 : %d\n합계 : %d\n평균 : %.2f\n"
, subjectArr[0], subjectArr[1], subjectArr[2], subjectArr[3], subjectArr[3] / 3.0f);
sc.close();
}
public void exam4() {
Scanner sc = new Scanner(System.in);
int temp = 0;
int[] iArr = new int[5];
for (int i = 0; i < iArr.length; i++) {
System.out.print(i + 1 + "번째 숫자 입력 : ");
iArr[i] = sc.nextInt();
}
// 낮은 수가 앞으로 오게 정렬
// 버블정렬
for (int i = 0; i < iArr.length - 1; i++) {
for (int j = 0; j < iArr.length - i - 1; j++) {
if (iArr[j] > iArr[j + 1]) {
temp = iArr[j];
iArr[j] = iArr[j + 1];
iArr[j + 1] = temp;
}
}
}
// 출력
for (int i = 0; i < iArr.length; i++) {
System.out.print(iArr[i] + " ");
}
sc.close();
}
[ 과제 ] - 로또 게임
[ 추가 과제 ] 자동 로또 게임
[ 추가 과제 출력 ]
무려 4,654,542 회 만에 1등 당첨..ㅎㅎ
반응형