초보자라면, 프로그램을 더 간단하고 구조적으로 잘 나누는 것이 좋습니다. 아래는 당신의 코드 구조를 간결하게 폴더 트리 형식으로 바꾼 예시입니다.
LottoApp/
├── src/
│ ├── LottoArray.java
│ ├── LottoUtil.java
└── README.md
package lotto;
public class LottoArray {
public static void main(String[] args) {
// 로또 번호 배열 생성
int[] lotto = LottoUtil.createLottoNo();
// 로또 번호 정렬
LottoUtil.sortLottoNumbers(lotto);
// 로또 번호 출력
LottoUtil.printLottoNumbers(lotto);
}
}
package lotto;
import java.util.Arrays;
import java.util.Random;
public class LottoUtil {
// 로또 번호 생성 메서드
public static int[] createLottoNo() {
int[] lotto = new int[6];
int cnt = 0;
Random rand = new Random();
// 6개의 번호를 생성하는 반복문
while (cnt < 6) {
int lottoNo = rand.nextInt(45) + 1; // 1부터 45까지의 난수 생성
// 중복 체크
if (isCompareNo(lotto, lottoNo)) {
lotto[cnt] = lottoNo;
cnt++;
}
}
return lotto;
}
// 중복 체크 메서드
public static boolean isCompareNo(int[] lotto, int lottoNo) {
for (int i = 0; i < lotto.length; i++) {
if (lotto[i] == lottoNo) {
return false; // 중복된 번호가 있으면 false 반환
}
}
return true; // 중복된 번호가 없으면 true 반환
}
// 로또 번호 정렬 메서드
public static void sortLottoNumbers(int[] lotto) {
Arrays.sort(lotto); // 기본 정렬 메서드를 사용하여 오름차순 정렬
}
// 로또 번호 출력 메서드
public static void printLottoNumbers(int[] lotto) {
System.out.print("로또 번호: ");
for (int i = 0; i < lotto.length; i++) {
System.out.print(lotto[i] + " ");
}
System.out.println(); // 출력 후 줄 바꿈
}
}
LottoArray.java: 메인 클래스는 단지 LottoUtil 클래스의 메서드들을 호출하는 역할만 합니다.LottoUtil.java: 로또 번호 생성, 중복 체크, 정렬, 출력 메서드를 모두 LottoUtil 클래스에 넣어주어 코드가 깔끔하고 모듈화되었습니다.src/: 이 폴더 안에 두 개의 자바 파일(LottoArray.java, LottoUtil.java)이 있습니다.README.md: 프로젝트에 대한 간단한 설명 파일 (선택 사항)전체 코드
package ex0219;
import java.util.Arrays;
import java.util.Random;
public class LottoArray {
public static void main(String[] args) {
// 로또 번호 배열 생성
int[] lotto = new int[6];
// 중복되지 않는 번호가 들어갈 개수
int cnt = 0;
// 로또 번호 생성
createLottoNo(lotto, cnt);
// 로또 번호 정렬
sortLottoNumbers(lotto);
// 로또 번호 출력
printLottoNumbers(lotto);
}
// 로또 번호 생성 메서드
public static void createLottoNo(int[] lotto, int cnt) {
Random rand = new Random();
// 6개의 번호를 생성하는 반복문
while (cnt < 6) {
int lottoNo = rand.nextInt(45) + 1; // 1부터 45까지의 난수 생성
// 중복 체크
if (isCompareNo(lotto, lottoNo)) {
lotto[cnt] = lottoNo;
cnt++;
}
}
}
// 중복 체크 메서드
public static boolean isCompareNo(int[] lotto, int lottoNo) {
// 배열을 돌면서 중복된 번호가 있는지 확인
for (int i = 0; i < lotto.length; i++) {
if (lotto[i] == lottoNo) {
return false; // 중복된 번호가 있으면 false 반환
}
}
return true; // 중복된 번호가 없으면 true 반환
}
// 로또 번호 정렬 메서드
public static void sortLottoNumbers(int[] lotto) {
Arrays.sort(lotto); // 기본 정렬 메서드를 사용하여 오름차순 정렬
}
// 로또 번호 출력 메서드
public static void printLottoNumbers(int[] lotto) {
System.out.print("로또 번호: ");
for (int i = 0; i < lotto.length; i++) {
System.out.print(lotto[i] + " ");
}
System.out.println(); // 출력 후 줄 바꿈
}
}