JX405기_비트/Java
Day02-8 Lotto 번호 생성기 (배열 사용)
_하루살이_
2023. 1. 15. 12:14
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();
}
}
}
}