[Toy] 로또
로또 만들기👨💻
지금까지 배운 과정으로 로또를 만들어보자
Math.random()
으로 생성된 난수를 배열에 담기- 중복된 숫자가 나오지 않게 처리하기
- 숫자를 오름차순으로 정렬하기
변수 선언
private int[] lottoArr;
private static boolean bo;
private Scanner sc = new Scanner(System.in);
public Lotto() { // 생성자 함수
this.lottoArr = new int[6];
}
우선 로또를 담을 배열과 입력을 받을 Scanner를 인스턴스 변수로 선언해둔다
로또 생성
private int[] getLotto() { // 로또 랜덤숫자 넣기
for (int i = 0; i < 6; i++) {
lottoArr[i] = (int) (Math.random() * 45 + 1);
for (int j = 0; j < i; j++) { // 중복 숫자 제거
if (lottoArr[i] == lottoArr[j]) {
i--;
break;
}
}
}
return lottoArr;
}
로또를 생성하는 함수니까 정수 배열로 리턴을 받도록 한다
생성된 로또배열의 i값과 j값이 같다면 해당 for문을 탈출하여 다시 반복하는 기능이다
로또 정렬하기
private int[] sortLotto(int[] lottoArr) { // 로또 정렬하기
int temp;
for (int i = 0; i < lottoArr.length; i++) {
for (int j = 0; j < i; j++) {
if (lottoArr[i] < lottoArr[j]) {
temp = lottoArr[i];
lottoArr[i] = lottoArr[j];
lottoArr[j] = temp;
}
}
}
return lottoArr;
}
정렬한 로또 역시 리턴하도록 정수 배열 타입을 선언한다
정렬을 위해선 자리를 바꿀 공간이 있어야 하므로 temp
라는 빈 상자를 준비한다
i가 j보다 작을 때 i와 j의 값을 temp
를 이용해 서로 자리를 바꾸는 버블 정렬이다
로또 출력하기
private void printLotto() { // 로또 출력하기
for (int i = 0; i < lottoArr.length; i++) {
System.out.print(lottoArr[i] + " ");
}
System.out.println();
}
반환받았던 로또 배열을 하나하나 출력하는 간단한 함수다
로또 평균구하기
private double averageLotto() { // 로또 평균구하기
DecimalFormat form = new DecimalFormat("#.##");
double sum = 0;
double average = 0;
for (int num : lottoArr) {
sum += num;
}
average = sum / lottoArr.length;
System.out.println("평균 : " + form.format(average));
return average;
}
DecimalFormat
는 숫자의 format을 바꾸게 도와주는 클래스다
평균값이 너무 길지 않도록 소숫점 아래 두 자리까지만 찍게 설정했다
후기✨
지금보면 간단하지만 할 때는 너무 힘들었다
지금까지 배운 것들을 모두 응용해서 만들어야 했는 데 막히는 것은 검색의 도움을 받았다
클래스를 이용하여 각 컴포넌트를 만들어 조합하는 것이 재밌는 작업이었다
Author And Source
이 문제에 관하여([Toy] 로또), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chicori3/Toy-로또저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)