문제 1
아래 코드에서 출력결과를 5로 기대했는데 4가 출력되었다 어디에서 잘못되었나?int var1 = 5;
int var2 = 2;
double var3 = var1/var2;
int var4 = (int)(var3*var2);
System.out.println(var4);
var3
의 값은 2이다. 결과값이 5가나오려면 var3
의 값이 2.5가 나와야한다.
var1
, var2
모두 int형이라 소수점이 나오지않으므로 캐스팅을해준다int var1 = 5;
int var2 = 2;
double var3 = (double)var1/var2;
int var4 = (int)(var3*var2);
System.out.println(var4);
문제 2
다음 코드를 실행했을때 출력결과는 무엇입니까?int x = 10;
int y = 20;
int z = (++x) + (y--);
System.out.println(z);
증감연산자가 피연산자 앞에있으면(++x
) 다른 연산수행전에 증감연산자가 적용되고,
증감연산자가 피연산자 뒤에있으면(y--
) 다른 연산수행후에 증감연산자가 적용된다.
위 코드에서 ++x
는 11 y--
는 20이므로 결과값인 z
는 31이된다.
문제 3
while
문과 Math.random()
메소드를 이용해 2개의 주사위를 던졌을때 나오는 눈을 (눈1, 눈2)형태로 출력하고 눈의 합이 5가 아니면 계속 주사위를 던지고 합이5면 실행을 멈추는 코드를 실행하세요
-출력 예시시작!
(3,6)
(1,4)
종료!
System.out.println("시작!");
while (true) {
int random1 = (int) (Math.random() * 6) + 1;
int random2 = (int) (Math.random() * 6) + 1;
System.out.println("(" + random1 + "," + random2 + ")");
if (random1 + random2 == 5) {
System.out.println("종료!");
break;
}
}
2개의 주사위를 Math.random()
메소드를 이용해 1부터6까지 랜덤한 숫자가 나오게하고
while
문안에 if
문을 넣어 두 주사위의 합이 5가 나오면 break
문으로 종료합니다.