▶조건문
반복 조건이 true이면 반복을 계속하고, false이면 반복 종료한다.
반복 종료할 때도 종료를 나타내는 코드가 있어야한다.
▶while문과 Math.random()메소드를 이용해서 두 개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성하는 예시
★코드★
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class Practice {
public static void main(String[] args) {
int num1 = 0, num2 = 0;
while (true) {
num1 = (int)(Math.random()*6)+1;
num2 = (int)(Math.random()*6)+1;
if(num1 + num2 == 5) break;
else continue;
}
System.out.println(num1+","+ num2);
}
}
|
cs |
★결과★
★이유★
System.out.println(num1+","+ num2)를 반복문 밖에 한번만 써준 것이 틀린점
여기서 발생되는 문제는 컴퓨터가 계산하는 과정을 볼 수 없다는 것이다.
상기 코드로 실행하면 콘솔에는 계속 2,3같은 합하면 5가되는 수만 콘솔에 출력되는데 System.out.println(num1+","+ num2)를 반복문 밖에 하나만 써서 컴퓨터는 혼자 랜덤으로 무한 반복 하다가 2가지 수가 5가 되었을 때만 콘솔에 출력시키는 것이다. 문제해결을 위해 if (num1 + num2 == 5)와 else뒤에 ( System.out.println(num1+","+ num2) 를 사용해준다.
-. 출력이 생각처럼 안되었을 때 어떤 부분이 생각과 다른지 구체적으로 적어보기
-. 내가 콘솔에 출력시킬것이 무엇인지 명확하게 생각하고 적절한 위치에 코드를 넣는 연습하기
**math.random()
-. (int) (math.random() * 최댓값) + 최솟값
-. math.random은 기본적으로 double타입의 값을 가지기에 정수출력을 위해선 int형으로의 형변환이 필요함: (int)math.random()로 출력