후위 연산자 조낸 어렵다
다른 연산 우선 실행 후 연산?
우선순위가 높은데 다른 연산이 먼저 실행한다는 걸 이해하기가 어려웠다
지금 쓰면서 생각해 보니까 어려운 것도 아니네 쩝,,
문제 풀면서 머리 너무 굴려서 터지는 줄 알았음
문제. 다음 소스코드를 실행했을 때 나오는 결과를 예상해보자
public void quiz1() {
int a = 5;
int b = 10;
int c = (++a) + b;
int d = c / a;
int e = c % a;
int f = e++;
int g = (--b) + (d--);
int h = 2;
int i = (a++) + b / (--c / f) * (g-- - d) % (++e + h);
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);
System.out.println("d : " + d);
System.out.println("e : " + e);
System.out.println("f : " + f);
System.out.println("g : " + g);
System.out.println("h : " + h);
System.out.println("i : " + i);
}
문제 풀이.
int a = 5;
// a = 5
int b = 10;
// a = 5, b = 10
int c = (++a) + b;
// a = 6, b = 10, c = 16
int d = c / a;
// a = 6, b = 10, c = 16, d = 2
int e = c % a;
// a = 6, b = 10, c = 16, d = 2, e = 4
int f = e++;
// a = 6, b = 10, c = 16, d = 2, e = 4(5), f = 4
int g = (--b) + (d--);
// a = 6, b = 9, c = 16, d = 2(1), e = 5, f = 4, g = 11
int h = 2;
// a = 6, b = 9, c = 16, d = 1, e = 5, f = 4, g = 11, h = 2
int i = (a++) + b / (--c / f) * (g-- - d) % (++e + h);
// 6(7) + 9 / ( 15 / 4) * (11(10)-1) % ( 6 + 2 )
// 6(7) + 9 / 3 * 10 % 8
// 6(7) + 3 * 10 % 8
// 6(7) + 30 % 8
// 6(7) + 6
// i = 12
// a = 7, b = 9, c = 15, d = 1, e = 6, f = 4, g = 10, h = 2, i = 12
'Quest' 카테고리의 다른 글
[과제] 반복문 (0) | 2022.11.03 |
---|---|
[과제] 배열 (0) | 2022.11.01 |
[과제] 조건문 (1) | 2022.10.31 |
[과제] 삼항 연산자 (0) | 2022.10.24 |
[과제] Scanner (0) | 2022.10.21 |