JongSeok_12 2019. 11. 27. 12:35

" target="_blank" rel="noopener" data-mce-href="http://">http://

 

매일프로그래밍

'1년 안에 개발자되기' 코알못에서 삼성 개발자가 될 수 있습니다. http://mailprogramming.com/ 매주 주어지는 코딩 테스트 문제와 자세한 설명으로 누구든지 할 수 있습니다. 기회를 놓치지 마세요! #코딩 #생활코딩 #프로그래밍 #개발자 #실리콘밸리 #취직 #코딩테스트 #매일프로그래밍

www.facebook.com

 

 

 

 

위의 코드는 증감,감소 연산자 ( ++, -- ) 가 변수에 사용된 것 이다

변수앞에 연산자에 위치에따라 언제 식을 계산할지 정할 수 있다

int main(){
	
    int a=3;
	a++;
	printf("a의 값: %d",a); //a의 값: 4

	a--;
	printf("a의 값: %d",a); //a의 값: 3

	++a;
	printf("a의 값: %d",a); //a의 값: 4
	
	--a;
	printf("a의 값: %d",a); //a의 값: 3

} 

 위와 같은 경우에는 선처리, 후처리 의 값이 동일한 것을 볼 수 가 있다. 

이유는 a 를 증감 후 다음번 호출시 출력하기 때문이며 차이를 보려면 한 라인에서 증감과 출력이 동시에 이루어질 때

그 차이를 식별할 수 있다.

int main(){

	int a=3;

	printf("a의 값: %d",++a); //4 -> 선처리
	
	printf("a의 값: %d",--a); //3 -> 선처리

	printf("a의 값: %d",a++); //3

	printf("a의 값: %d",a);   //4 -> 후처리 다음 호출에서 더해진 값출력

	printf("a의 값: %d",a--); //4

	printf("a의 값: %d",a);   //3 -> 후처리 다음 호출에서 감소된 값출력

	printf("a의 값: %d",a++ + a); //7 -> a++의 값은 3, 다음 호출되는 a의 값은 4

}

위와 같이 한 라인 안에서

즉 printf 함수 안에서 서식문자를 이용하여 값을 출력할 때 선처리, 후처리를 사용하여 식을 처리할 때 차이는 위와 같다

 

++a 선처리

-> 먼저 증감연산자 선처리 후 함수 실행

-> 출력 : 4

 

 

a++ 후처리

-> 먼저 함수 실행 후 증감연산자 수행

-> 출력 : 3

-> 다음번 print를 했을때 증감한 값인 4가 출력

 

 

즉 위의 문제는 

i = 5

system.out.println (++i)  -> 값 6

system.out.println (i++)  -> 값 5

 

 

참조 : https://coding-house.tistory.com/15