public class Quiz {
public static void main(String[] args) {
System.out.println("=== Q1 ===");
int var1 = 5;
int var2 = 2;
// var3 변수에 값을 할당하는 과정에서 잘못 작성되었다.
// double은 int 값들을 계산 시, double로 형변환이 되어 있지 않는다면, 소수점을 다 버린다.
double var3 = (double) var1 / var2;
int var4 = (int) (var3 * var2);
System.out.println(var3);
System.out.println(var4);
System.out.println("=== Q2 ===");
int x = 10;
int y = 20;
// 여기서 증감연산자가 피연산자 앞에 있기 때문에 x는 +1 -> x = 11
// y는 피연산자 뒤에 증감연산자가 있으므로 y = 20 유지
int z = (++x) + (y--);
// z = 31
System.out.println(z);
// System.out.println(z); 실행 후, y - 1 진행.
// 피연산자 뒤에 붙은 증감연산자는 실행문이 실행된 다음에 증감연산자의 영향을 받는다.
// 아래 y를 출력하면 19가 출력되는 것을 알 수 있음.
System.out.println(y);
System.out.println("=== Q3 ===");
System.out.println("주사위 출력 시작!");
while (true) {
// Math.random의 난수 범위는 0 < number < 1이기 때문에 int로 형변환 해주면 소수점이 날라감.
// 주사위 1 ~ 6 이므로 (int) (Math.random() * 6) => 0 < number < 6
// 근데 마지막에 + 1 해줌 => 1 < number < 7 이 현재 주사위의 범위가 된다.
int vice1 = (int) (Math.random() * 6) + 1;
int vice2 = (int) (Math.random() * 6) + 1;
System.out.println("(" + vice1 + "," + vice2 + ")");
if ((vice1 + vice2) == 5) {
System.out.println("주사위 출력 종료!");
break;
}
}
}
}