6가지의 숫자를 가지는 1차원 배열을 사용해서
1. 중복되지 않은 숫자를 배열에 삽입하기
// 중복되지 않는 숫자를 배열에 부여하기
for(int i = 0; i < lottoNumbers.length;){
int temp = random.nextInt(45) + 1; // 새로운 temp라는 변수에 랜덤한 숫자를 할당
boolean numberSwitch = true; // 새로운 변수가 배열의 값과 일치여부 판단
for(int j = 0; j < i; j++){ // 이중 for문 사용
if(temp == lottoNumbers[j]){ // temp 변수의 값이 배열의 값과 일치
numberSwitch = false; // numberSwitch를 false로 변경 배열에 temp값 추가되지 않고 다시 i까지 실행
}
}
//numberSwitch가 false 일 경우 다시 temp값 받기 i값 증가되지 않음
if(numberSwitch){ // true 일 경우 temp 값을 i번째 인덱스에 삽입 후 i값을 증가
lottoNumbers[i] = temp;
i++;
}
}
2. 대소비교를 통해 오름차순으로 정렬하기
// 배열을 사용해서 오름 차순으로 정렬하기
for(int i = 0; i < lottoNumbers.length - 1; i++){
if(lottoNumbers[i] > lottoNumbers[i+1]){
int temp = lottoNumbers[i];
lottoNumbers[i] = lottoNumbers[i+1];
lottoNumbers[i+1] = temp;
i = -1;
}
}
전체 코드
package day0110;
import java.util.Random;
// 로또 번호 생성기
// ver2.0
// 배열을 사용해보자
public class Ex09Lotto02 {
public static void main(String[] args) {
Random random = new Random();
int[] lottoNumbers = new int[6];
// 중복되지 않는 숫자를 배열에 부여하기
for(int i = 0; i < lottoNumbers.length;){
int temp = random.nextInt(45) + 1;
boolean numberSwitch = true;
for(int j = 0; j < i; j++){
if(temp == lottoNumbers[j]){
numberSwitch = false;
}
}
if(numberSwitch){
lottoNumbers[i] = temp;
i++;
}
}
// 배열을 사용해서 오름 차순으로 정렬하기
for(int i = 0; i < lottoNumbers.length - 1; i++){
if(lottoNumbers[i] > lottoNumbers[i+1]){
int temp = lottoNumbers[i];
lottoNumbers[i] = lottoNumbers[i+1];
lottoNumbers[i+1] = temp;
i = -1;
}
}
// 출력
for(int i = 0; i < lottoNumbers.length; i++){
System.out.printf("%d", lottoNumbers[i]);
if(i < lottoNumbers.length - 1){
System.out.print(", ");
} else {
System.out.println();
}
}
}
}
'JX405기_비트 > Java' 카테고리의 다른 글
Day02-10 Muti Array 다차원 / Lotto 추첨기 ver 4.0 - 2차원 배열 사용하기 (0) | 2023.01.15 |
---|---|
Day02-9 Lotto 추첨기 ver 3.0 - 자동 추첨과 사용자 입력을 통한 수동 추첨 / 컴퓨터 추첨으로 일치한 갯수 출력 (0) | 2023.01.15 |
Day02-7 Random 클래스를 활용한 Lotto번호 출력 (배열 없이) (0) | 2023.01.15 |
Day 02-6 Random 클래스 (0) | 2023.01.15 |
Day02-5 Array 배열 (0) | 2023.01.15 |