= 0 && b < 1) { r1++; } else if (b >= 1 && b < 2) { r2++; } else if (b >= 2 && b < 3) { r3++; } else if (b >= 3 && b < 4) { r4++; } else if (b >= 4 && b < 5) { r5++; } else if (b >= 5 && b < 6) { r6++; } } System.out.printf("1이 %d번 나왔습니다.\n", r1); System.out.printf("2이 %d번 나왔습니다.\n", r2); System.out.printf("3이 %d번 나왔습니다.\n", r3); System.out.printf("4이 %d번 나왔습니다.\n", r4); System.out.printf("5이 %d번 나왔습니다.\n", r5); "> = 0 && b < 1) { r1++; } else if (b >= 1 && b < 2) { r2++; } else if (b >= 2 && b < 3) { r3++; } else if (b >= 3 && b < 4) { r4++; } else if (b >= 4 && b < 5) { r5++; } else if (b >= 5 && b < 6) { r6++; } } System.out.printf("1이 %d번 나왔습니다.\n", r1); System.out.printf("2이 %d번 나왔습니다.\n", r2); System.out.printf("3이 %d번 나왔습니다.\n", r3); System.out.printf("4이 %d번 나왔습니다.\n", r4); System.out.printf("5이 %d번 나왔습니다.\n", r5); "> = 0 && b < 1) { r1++; } else if (b >= 1 && b < 2) { r2++; } else if (b >= 2 && b < 3) { r3++; } else if (b >= 3 && b < 4) { r4++; } else if (b >= 4 && b < 5) { r5++; } else if (b >= 5 && b < 6) { r6++; } } System.out.printf("1이 %d번 나왔습니다.\n", r1); System.out.printf("2이 %d번 나왔습니다.\n", r2); System.out.printf("3이 %d번 나왔습니다.\n", r3); System.out.printf("4이 %d번 나왔습니다.\n", r4); System.out.printf("5이 %d번 나왔습니다.\n", r5); ">
    public static void main(String[] args) throws Exception {
        System.out.print("주사위를 몇번 던질까요? : ");
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        
        int r1 = 0, r2 = 0, r3 = 0, r4 = 0, r5 = 0, r6 = 0;

        for (int i = 0; i < a; i++) {
            double b = Math.random() * 6;
            if (b >= 0 && b < 1) {
                r1++;
            } else if (b >= 1 && b < 2) {
                r2++;
            } else if (b >= 2 && b < 3) {
                r3++;
            } else if (b >= 3 && b < 4) {
                r4++;
            } else if (b >= 4 && b < 5) {
                r5++;
            } else if (b >= 5 && b < 6) {
                r6++;
            }
        }

        System.out.printf("1이 %d번 나왔습니다.\\n", r1);
        System.out.printf("2이 %d번 나왔습니다.\\n", r2);
        System.out.printf("3이 %d번 나왔습니다.\\n", r3);
        System.out.printf("4이 %d번 나왔습니다.\\n", r4);
        System.out.printf("5이 %d번 나왔습니다.\\n", r5);
        System.out.printf("6이 %d번 나왔습니다.\\n", r6);
    }

첫번째로 작업을 진행했던 부분은 기능을 분리하는 것입니다.

Untitled

이런식으로 4가지로 기능을 분류했습니다.

객체 지향 원칙에 따라 SRP(단일 책임 원칙)을 지켜보려? 및 공부하는 김에 나눠보았습니다 기능 별로 정답일지 아닐지 모르겠지만, 틀렸다면 피드백을 받아 수정해야겠다 생각하겠습니다 ! ㅠㅠ

그렇다면 4가지 기능에 대해 분리를 진행한다면,

주사위와 주사위를 동작하기위한 분리를 진행하면 될 것이라 생각했습니다.

그래서 클래스를 DiceDiceAction을 두어 Dice에는 주사위 눈에 대한 필드를 가지고 있으며, DiceAction입력받을 주사위 횟수, 주사위 굴리는 기능, 굴린 주사위눈에 대한 값을 출력하는 기능을 가지도록 설계를 했습니다.