반응형

<Q1. 다음 코드를 실행했을 때 출력 결과는 무엇입니까?>

위 문제는 연산자와 관련된 문제이다.

우선 간단한 연산자들을 먼저 알아보자. 

1. 산술 연산자

우리가 쉽게 볼 수 있었던 사칙연산에 %(나머지)를 지칭하는 것이 하나 더 추가되어있다. 

예를들어 3을 2로 나누면 1이 남는데 그때 1을 구하기 위하여 사용한다.

이렇게 사용하면 1이 나오는 것을 볼 수 있다.

 

2. 복합 대입 연산자

'='는 원래 대입연산자로 왼쪽으로 오른쪽 값을 대입한다는 뜻으로 쓰인다.

 

3. 관계 연산자

a>=b , a<=b에서 '>=(크거나 같다)' 혹은 '<=(작거나 같다)' 의 위치가 바뀌면 오류가 날 수 있으니 주의!

같다는 '==' 두번을 사용한다 (한번을 사용하면 = 대입연산자가 된다.)

 

4. 증감 연산자

증가, 감소 연산자로 증감 연산자라고 칭한다.

증감연산자는 위치에 따라서 조금씩 값이 달라지는 것을 볼 수 있다.

a = 3++ 혹은 a = 3-- 처럼 연산자가 숫자보다 후위에 있을 경우 현재 값을 먼저 왼편에 전달 한 후 증가/감소가 이루어 진다.

b로 3이 대입된 후 +1이 된 것을 볼 수 있다.

 

a = ++3 혹은 a = --3 처럼 연산자가 숫자보다 앞에 있을 경우 현재 값에 먼저 적용이 된 후 왼쪽으로 전달이 되는 것을 볼 수 있다.

 

5. 논리 연산자

 

6. 삼항 연산자

삼항 연산자는 ? 앞에 있는 조건이 참인지 거짓인지 판별하여

참이 될 경우 콜론(:) 앞 부분의 값을 리턴하고, 거짓일 경우 콜론의 뒷부분의 값을 리턴하는 연산자입니다.

 


이번 문제는 코드를 받아쓰기 하라는 것은 아니고 연산자의 위치를 생각하여 어떻게 출력이 될지 생각해보라는 문제 입니다.

4번 증감연산자에 쓰여 있듯 

'++x' 10보다 1 증가하여 11이 된 상태로 계산이 이루어 질 것이고,

'y--'  계산이 이루어져 대입이 된 후 1이 감소 될 것입니다.

그래서 z 값은 아직 1이 감소되기 전인 20의 값을 그대로 가지고 있어 

x = 11 , y = 20 로 두 수의 합은 31이 되는 것을 볼 수 있습니다.

반응형

+ Recent posts