int var1=5;
int var2=2;
double var3=var1/var2;
int var4=(int)(var3*var2);
System.out.println(var4);
-> 기대값 : 5, 결과값 : 4
해석 : var1(int형) 나누기 var2(int형)의 경우, return 값은 정수이므로 var3의 값은 2.0이 된다.
그러므로 (int)(var3 * var2)는 (int)(2.0 x 2)와 같으며, 결과값으로 4가 출력된다.
int x = 10;
int y = 20;
int z = (++x) + ( y--);
System.out.println(z);
-> 증감연산자에 대한 설명과 값
해석 : 증감연산자는 변수 앞에 있으면 1을 증감시킨 후에, 변수 뒤에 있으면 연산을 진행한 후에 1을 증감시킨다.
그러므로 int z = (++x) + (y--)에서 (++x)는 11, (y--)는 20으로 연산이 진행되고, z = 31로 결과값은 31이 된다.
추가적으로, y는 연산 이후에 19가 된다.
int random_num1;
int randeo_num2;
int result = 0;
while(result != 5){
random_num1 = (int)(Math.random() * 6) + 1;
randeo_num2 = (int)(Math.random() * 6) + 1;
System.out.println("( " + random_num1 + ", " + randeo_num2 + " )");
result = random_num1 + randeo_num2;
}
-> 주사위 2개의 값의 합이 5가 되면 실행 종료
해석 : Math.random() method는 0.0과 1.0사이 하나의 double 값을 return 한다.
주사위 이므로 1 ~ 6 의 값으로 설정해준다.
0.0 <= Math.random() <= 1.0
0.0 <= Math.random() 6 <= 5.0
1.0 <= (Math.random() 6) <= 6.0
1 <= (int)(Math.random() * 6) <= 6
while문은 괄호 안의 조건문이 참이면 반복하고 거짓이면 종료한다.
while(result != 5)은 result의 값이 5아 아니면 반복을 한다는 의미이다.
그러므로 반복문 끝에 result의 값을 새로 뽑은 주사위 값의 합으로 할당하여, 주사위의 눈이(1,4), (4,1), (2,3), (3,2)이 되면 반복문을 빠져나오게 된다.