Page 13 -
P. 13
산의 결과가 그 연산의 대상이 되는 데이터 타입과 동일한 데이터 타입을 가진다는 점이다. 이 원칙 때문에 1
표현식의 결과를 대략적으로 머릿속에서 짐작할 때 실제 결과가 완전히 다를 수 있다. 예를 들어 5/3
은 데이터 타입에 따라 그 값이 1일 수도 있고 5.0/3.0 = 1.66666666666667일 수도 있다. 후자의 기초 개념
경우 실제 5/3의 값에 아주 가깝기는 하지만 두 경우 모두 5/3과 같은 값은 아니다. 표 1-2는 각 데
이터 타입의 속성을 요약한 것으로 모든 정보를 담고 있지는 않다. 이 절의 마지막과 Q&A를 통해서
추가적인 연산자와 여러 가지 예외적인 상황에 대해서 알아볼 것이다.
표 1-2 자바에서의 기본 데이터 타입
전형적인 표현식
타입 값의 집합(범위) 연산자
표현식 값
31
31
int -2 ~+2 -1 사이의 값 + (덧셈) 5 + 3 8
(32비트 2의 보수) - (뺄셈) 5 - 3 12
* (곱셈) 5 * 3 15
/ (나눗셈) 5 / 3 1
% (나머지) 5 % 3 2
double 배정도 실수(IEEE 754 + (덧셈) 3.141 - .03 3.111
표준에 정해진 64비트 값) - (뺄셈) 2.0 - 2.0e-7 1.9999998
* (곱셈) 100 * .015 1.5
/ (나눗셈) 6.02e23 / 2.0 3.01e23
boolean true 또는 false & & (and 논리곱) true & & false false
|| (or 논리합) false || true true
! (not 논리부정) !false true
^ (xor 배타 논리합) true ^ true false
char 문자(16-비트) [산술 연산은 거의 사용되지 않음]
표현식 앞서 표에서 설명되었듯이 대부분의 표현식은 이항 연산자들로 이루어진다. 리터럴(또는 표
현식) 다음에 연산자가 오고 그다음에 또 다른 리터럴(또는 또 다른 표현식)이 온다. 표현식이 하나
이상의 연산자로 이루어질 때는 나열된 순서가 중요할 때가 많다. 자바 언어에서는 다음의 연산자 우
선순위가 적용된다. 연산자 *와 /(그리고 %)는 +나 - 연산자보다 우선순위가 높기 때문에 먼저 적용
된다. 논리 연산자 중에서는 !이 가장 높은 우선순위를 가지고 & &와 ||가 그다음 우선순위를 가진다.
일반적으로 같은 우선순위의 연산자 간에는 왼쪽에 있는 연산자부터 차례로 적용된다. 이 원칙이 적
용되지 않게 하려면 의도에 맞게 우선해서 실행될 부분을 괄호로 감싸주면 된다. 우선순위 규칙은 언
어마다 조금씩 다르기 때문에 코드를 다른 환경으로 포팅할 때 의도하지 않은 의미 변화를 피하기 위
해 항상 괄호를 써주는 것이 바람직하다.
025