본문 바로가기

Quest

[과제] 증감 연산자

 

후위 연산자 조낸 어렵다

 

다른 연산 우선 실행 후 연산? 

 

우선순위가 높은데 다른 연산이 먼저 실행한다는 걸 이해하기가 어려웠다

 

지금 쓰면서 생각해 보니까 어려운 것도 아니네 쩝,,

 

문제 풀면서 머리 너무 굴려서 터지는 줄 알았음

 

 


문제. 다음 소스코드를 실행했을 때 나오는 결과를 예상해보자

 

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