[인프런 워밍업 클럽] 과제 5일차
9개월 전
진도표 5일차와 연결됩니다
우리는 <클린 코드>라는 개념을 배웠습니다. <클린 코드>에 대한 감각을 익히기 위해서는 어떤 코드가 좋은 코드이고, 어떤 코드가 좋지 않은 코드인지 이론적인 배경을 학습하는 것도 중요할 뿐 아니라, 다양한 코드를 읽어 보며 어떤 부분이 읽기 쉬웠는지, 어떤 부분이 읽기 어려웠는지, 읽기 어려운 부분은 어떻게 고치면 좋을지 경험해보는 과정이 필요합니다.
이번 과제는 제시된 코드를 읽어보며, 코드를 더 좋은 코드로 고쳐나가는 과정입니다. 구글에 “클린 코드” 혹은 “클린 코드 정리”를 키워드로 검색해보면, 이론적인 배경을 충분히 찾아보실 수 있습니다. 🙂 그러한 내용들을 보며 제시된 코드를 더 좋은 코드로 바꿔보세요! (코드를 바꿀 때 왜 바뀐 코드가 더 좋은 코드인지 다른 사람에게 설명하신다고 생각해보시면 더욱 좋습니다.)
[제시된 코드]
여러 함수로 나누어도 좋습니다! 🙂
여러 클래스로 나누어도 좋습니다! 🙂
import java.util.Scanner;
public class DiceSimulation {
private static final int NUMBER_OF_SIDES = 6;
public static void main(String[] args) {
int numberOfRolls = promptForNumber();
int[] rollCounts = simulateDiceRolls(numberOfRolls);
printRollCounts(rollCounts);
}
private static int promptForNumber() {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자를 입력하세요 : ");
return scanner.nextInt();
}
private static int[] simulateDiceRolls(int numberOfRolls) {
int[] rollCounts = new int[NUMBER_OF_SIDES];
for (int i = 0; i < numberOfRolls; i++) {
int roll = rollDice();
rollCounts[roll - 1]++;
}
return rollCounts;
}
private static int rollDice() {
return (int) (Math.random() * NUMBER_OF_SIDES) + 1;
}
private static void printRollCounts(int[] rollCounts) {
for (int i = 0; i < NUMBER_OF_SIDES; i++) {
System.out.printf("%d는 %d번 나왔습니다.\n", i + 1, rollCounts[i]);
}
}
}
private static final int NUMBER_OF_SIDES = 6;
여기서 12나 20으로 바꿔도 된다.
댓글을 작성해보세요.