같은 자료형의 변수들의 나열된 묶음
같은 타입 변수들의 관리를 편하게 하기 위해서
* 선언과 생성을 동시에 초기화 : 타입[] 배열명 = new 타입[길이]; //ex) int[] ar = new int[3];
배열의 값을 다루기 위해서 인덱스를 사용한다.
* 인덱스: 배열의 위치 값
* (중요) 배열의 시작 번호는 0부터 시작한다.
배열 생성 시 배열의 값은 배열의 타입에 해당하는 기본값으로 초기화한다.
int scores[] = new int[3];
scores[0]=100;
scores[1]=80;
scores[2]=70;
for(int i =0;i<3;i++)
System.out.println(i+1+"번째 학생의점수: "+scores[i]+"점");
정수형 배열을 생성할 때, 바로 초기값을 넣는 방법
방법 1
int[]a=new int[] {10, 20, 30, 40, 50};
방법2: new int[] 생략 가능
int []b = {1, 2, 3, 4, 5};
* 정수형 배열을 선언하고, 배열의 길이를 할당하는 방법
int c[] = new int[10]
* 배열 안의 문자열로 출력하는 방법
Arrays.toString(배열명)
<로또 프로그램 알고리즘>
1. 6개의 랜덤 숫자와 보너스 점수를 로또 배열에 저장한다.
2. 사용자에게 1~45까지의 6개의 숫자를 입력 받아 배열에 저장한다.
3. 사용자가 입력한 값과 로또 배열에 있는 값을 비교하여 동일한 값의 개수를 count한다.
4. 몇 개의 숫자를 맞췄는지 다음과 같은 조건에 따라 등수를 출력한다.
<조건>
1. 6개의 숫자 중 5개의 숫자와 보너스 번호를 맞히면 2등
2. 6개의 숫자 중 5개의 숫자를 맞히면 3등
3. 6개의 숫자 중 4개의 숫자를 맞히면 4등
4. 6개의 숫자 중 3개의 숫자를 맞히면 5등
<제작 과정>
import java.util.*;
public class Day02Ex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random random = new Random();
int lottoAr[]=new int[6];
int userAr[]=new int[6];
int bonus, bonusUser;
int count=0;
//6개의 랜덤 숫자와 보너스 점수를 로또 배열에 저장
for(int i = 0;i<6;i++) {
lottoAr[i]=random.nextInt(45)+1; //1부터 45까지 받아야하므로 +1을 추가로 해줌
}
bonus=random.nextInt(45)+1;
//로또 번호 몇 번인지 알기 위해 출력
System.out.println("Lotto: "+ Arrays.toString(lottoAr)+", bonus: "+bonus);
// 사용자에게 1~45의 6개의 숫자를 입력받아 배열에 저장하고 사용자에게 보너스 점수를 입력
System.out.println("숫자 6개 입력:");
for(int i = 0;i<6;i++){
userAr[i]=sc.nextInt();
}
System.out.println("보너스 값 입력:");
bonusUser=sc.nextInt();
//유저가 작성한 로또 번호
System.out.println("User: "+Arrays.toString(userAr)+", bonus: " + bonusUser);
//로또 배열의 값과 사용자배열의 값 중 같은 값이 몇 개 있는지 카운팅(순서는 상관 없음)
for(int j = 0; j<6 ; j++) {
for(int i = 0;i<6;i++) {
if(lottoAr[j]==userAr[i]) {
count++;
}
}
}
System.out.println("총 맞춘 갯수: " + count);
//count의 개수에 따라서 등수 정하기
if(count==6) {
System.out.println("축하드립니다! 1등입니다!");
}
else if(count==5) {
if(bonus==bonusUser) {
System.out.println("축하드립니다! 2등입니다!");
}
else {
System.out.println("축하드립니다! 3등입니다!");
}
}
else if(count==4) {
System.out.println("축하드립니다! 4등입니다!");
}
else if(count==3) {
System.out.println("축하드립니다! 5등입니다!");
}
else {
System.out.println("아쉽지만 다음 기회에.");
}
}
}