문제1


import java.util.Scanner;
public class DiceRoller {
private static final int DICE_SIDES = 6;
private static final int[] results = new int[DICE_SIDES];
public static void main(String[] args) {
int rolls = getUserInput();
simulateRolls(rolls);
printResults();
}
private static int getUserInput() {
Scanner scanner = new Scanner(System.in);
System.out.println("숫자를 입력하세요 : ");
return scanner.nextInt();
}
private static void simulateRolls(int rolls) {
for (int i = 0; i < rolls; i++) {
int result = (int) (Math.random() * DICE_SIDES);
results[result]++;
}
}
private static void printResults() {
for (int i = 0; i < DICE_SIDES; i++) {
System.out.printf("%d은 %d번 나왔습니다.\\n", i + 1, results[i]);
}
}
}
- 중복 코드 최소화
- 클래스 분리
- 한 클래스당 하나의 일만 가지게 클래스를 분리한후 main함수에 입력
- 상수 사용
- DICE_SIDES = 6; 라는 상수를 사용해서 여기에 입력 숫자만 바꾸면 주사위 범위가 달라져도 최소한의 수정으로 변경가능