6. 연산자의 결합 방식
모든 연산자는 우선순위가 있다. 곱셈은 덧셈, 뺄셈보
다 우선순위가 높다. 즉, 덧셈 뺄셈 보다 먼저 수행된다
모든 연산자는 결합 방향을 가진다. 대입 연산자는 오른
쪽에서 왼쪽으로, 뺄셈은 왼쪽에서 오른쪽으로, 증감 연
산자(++, --)는 결합 방향을(전치, 후치) 변경할 수 있다.
x 의 값은 -2이다.!
덧셈, 뺄셈의 우선순위는!
같기 때문에 좌측에서 우측으로 !
결합되며 수행된다.
y의 값은 7이다. 9라고 예상한다면 !
수식의 의도를 우선순위와 결합방향과 !
다르게 표현했기 때문이다.
7. 연산자의 결합 방식
y 값이 7이 되는 과정. 곱셈의 우선순위가 높기 때문에 먼저
수행된 후 그 결과를 다음 우선순위인 덧셈과 결합된다.
1
2
y 값이 9가 되는 “의도” 가 있다면 그 의도를 괄호로 표현
하라. 괄호는 결합 우선순위를 명시적으로 지정할 수 있다.
2
1
8. 문맥에 따라 기능이 달라지는 연산자
y 의 값은 각각 20, ‘1010’ 이다.!
어떻게 이런 결과가 나오는 것일까?
+연산자는 좌변과 우변이 모두 숫자 (or 숫자를 담고있는 변
수)인 경우 산술 연산을 수행하고 하나라도 문자인 경우 숫자
를 문자형으로 변환(Type Casting)한 후 “결합”한다
9. 명시적인 형변환 방법
y 의 값은 문자열 ‘1010’ 이다.!
값을 문자열로 변경하는 String() 함수를 이용하여!
x 값을 문자열로 변경한 후 + 로 우변과 결합한다.
y의 값은 20이다.!
문자 ’10’을 담고 있는 변수 x 에 !
+ (양수) 연산자를 이용하여 숫자로!
변환하는 형변환을 강제로 발생시킨 후!
우변과 사칙연산이 수행된다.
y의 값은 20이다.!
+x 방식과 동일하나 보다 명시적인 숫자 형변환 함수를 이용했다.