주제
클린코드에 대해서 이해하고 실제로 경험해보자.
주요 내용
키워드
클린 코드
클린 코드를 적용해보자
요구사항
import java.util.Scanner;
//주사위 결과를 관리하는 클래스
class DiceResult {
private int[] results;
public DiceResult(int numSides) {
results = new int[numSides + 1]; // 0번 인덱스는 사용하지 않게 +1
}
//어느 면으로 나왔는지 주사위를 굴려 나온 결과를 배열에 넣기
public void recordRoll(int side) {
results[side]++;
}
//주사위 결과를 출력
public void displayResults() {
for (int i = 1; i < results.length; i++) {
System.out.printf("%d은(는) %d번 나왔습니다.\n", i, results[i]);
}
}
}
//주사위 게임을 관리하는 클래스
public class DiceGame {
private static final int MAX_DICE_NUM = 6; // 최대 면
private DiceResult diceResult;
//주사위 결과 객체를 초기화
public DiceGame() {
diceResult = new DiceResult(MAX_DICE_NUM);
}
//사용자 입력을 받는 메소드
private int getUserInput() {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자를 입력하세요 : ");
int input = scanner.nextInt();
scanner.close();
return input;
}
//주사위를 굴리는 메소드
private void rollDice(int rolls) {
for (int i = 0; i < rolls; i++) {
int result = (int) (Math.random() * MAX_DICE_NUM) + 1;
diceResult.recordRoll(result);
}
}
//결과를 출력하는 메소드
private void printResult() {
diceResult.displayResults();
}
public void play() {
//굴릴 횟수를 입력
int rolls = getUserInput();
//횟수만큼 주사위를 굴리기.
rollDice(rolls);
//결과 출력
printResult();
}
public static void main(String[] args) {
DiceGame game = new DiceGame();
game.play();
}
}
Java
복사
참고
챗GPT