반응형
(이 문제는 https://aeunhi99.tistory.com/152의 글을 참고해서 작성했습니다.)
이 문제는 곰곰이 생각하면 풀 수 있는 문제였으나, 중간에 너무 지저분해져서 다시 다른 분 것을 참고해서, 거기에
해설을 달아보는 식으로 공부를 했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | package test; public class Dice { // value는 주사위 면의 값을 의미하는 필드이다. private int value; public Dice() { value = 0; // 생성자로 value를 0으로 초기화 할 수 있다. } // 이것은 주사위를 다시 굴리기 위한 메소드이다. // 이 메소드로 value 값은 난수가 된다. public void roll() { value = ((int) (Math.random() * 6)) + 1; } // 매개 변수로 받은 value를 객체의 필드인 value에 저장하는 설정자이다 public void setValue(int value) { this.value = value; } // 그런 value의 값을 리턴하는 접근자이다. public int getValue() { return value; } public static void main(String[] args) { // 주사위 두 개의 객체를 부른다. Dice d1 = new Dice(); Dice d2 = new Dice(); // 다시 주사위를 굴렸을 때, count 하기 위한 변수다. int count = 1; //처음에 setValue 값이 0이면 무의미하게 count가 낭비되기에 //생성자가 아닌 설정자 메소드를 활용해 초기값을 정하고 반복문을 돌린다. d1.setValue(((int) (Math.random() * 6)) + 1); d2.setValue(((int) (Math.random() * 6)) + 1); do { // 각 객체의 접근자를 호출하는 출력문이다. System.out.printf("주사위 1=%d 주사위 2=%d\n", d1.getValue(), d2.getValue()); // 두 객체의 주사위면(value)의 합이 2가 되었을 때의 카운트가 몇인지를 알기 위한 if문이다. if (d1.getValue() + d2.getValue() == 2) { System.out.printf("(%d,%d)이 나오는데 걸린 회수=%d", d1.getValue(), d2.getValue(), count); break; // 합이 2가 안나오면 다시 주사위를 굴리기 위한 메소드이다 } else { d1.roll(); d2.roll(); count++; } } while (true); } } | cs |
ps: 저작권 관련해서, 뒤늦게 확인했습니다. 저는 출처만 남기면 될 줄 알았는데. 만약 약간이라도변경 하게 되면, 변경 사실도 원저작자에게 공지해야 한다고 나와있었습니다.
제가 이 같은 사실을 너무 늦게 파악하는 바람에, 그동안은 못했는데, 잘참고해서 다음부터는 이 같은 실수를 해서는 안되겠지요. 혹시라도 저작권 관련해서 문제 될 시 바로 삭제 조치를 취하겠습니다.)
반응형
'It Study > POWER JAVA(기본서)' 카테고리의 다른 글
POWER JAVA 5장 LAB 전기자동차 (0) | 2022.10.10 |
---|---|
POWER JAVA 4장 프로그래밍 문제 1번 ~ 7번 문제 (0) | 2022.10.06 |
POWER JAVA 4장 LAB 윈도우 생성하기 도전문제 (0) | 2022.10.05 |
POWER JAVA 4장 안전한 배열 - 응용(해설) (0) | 2022.10.02 |
POWER JAVA (개념) - 클래스란? (0) | 2022.09.29 |