[인프런 워밍업 클럽 BE 0기] 5일차 과제

[인프런 워밍업 클럽 BE 0기] 5일차 과제

imageimage


 

 

public class Dice {

    public static void main(String[] args) throws Exception {

        // 주사위 면 갯수 입력
        System.out.print("주사위는 몇개의 면을 가지고 있나요 : ");
        RollDice rollDice = new RollDice(new Scanner(System.in).nextInt());

        // 주사위 돌리는 횟수 입력
        System.out.print("주사위는 몇 번 돌릴까요? : ");
        rollDice.countDice(new Scanner(System.in).nextInt());

        // 결과 출력
        rollDice.printResult();
    }
}
public class RollDice {

    private int[] results;

    public RollDice(int num) {
        this.results = new int[num];
    }

    public void countDice(int num){
        // 나온 숫자를 세는 역할
        for (int i = 0; i < num; i++) {
            int n = (int)(Math.random() * results.length);
            results[n]++;
        }
    }

    public void printResult(){
        for(int i=0; i<results.length; i++)
        System.out.printf("%d번은 %d번 나왔습니다.\n", i+1, results[i]);
    }
}

main 클래스와 기능을 구현 할 클래스를 나누어서 작성

main 클래스에서 주사위 면의 수와 돌릴 횟수를 입력 받고, RollDice 클래스에서 주사위를 돌려서 나온 숫자를 저장하는 메소드와 결과를 출력하는 메소드를 작성

 

int형 변수 6개를 따로 선언했던 초기와는 달리 배열을 선언하여 코드를 간결하게 만들었고, 추가적으로 값을 입력 받아 주사위 면의 수를 정하여 1~6까지 말고도 1~12, 1~20 등의 주사위 숫자 범위가 넓어져도 코드의 변화가 없도록 작성

 

결과 출력에서도 System.out.println()를 여러 개 쓴 것과 달리 반복문을 통해 코드를 간결하게 작성

image

댓글을 작성해보세요.

채널톡 아이콘