Page 14 -
P. 14
타입 변환 숫자는 그 숫자의 정밀도를 잃어버리지 않는 범위 안에서 가장 작은 표현 범위의 데이터
타입으로 자동 변환된다. 예를 들어 1 + 1.5라는 표현식에서 숫자 1은 double 타입 값 1.0으로 변환
되고 표현식의 결과도 double 타입 값 3.5가 된다. 타입 변환은 괄호 안에 타입 이름을 기술하여 특
정 값을 해당 타입의 값으로 변환하는 것을 말한다. 예를 들어 (int) 3.7은 3이 되고 (double) 3은 3.0
이 된다. int 타입으로의 타입 변환은 소수점 부분을 반올림하지 않고 버리기 때문에 3.7이 4가 아
니라 3이 된다. 이러한 버림 원칙 때문에 복잡한 수식에서는 결과를 예측하기가 대단히 어려울 수 있
다. 따라서 타입 변환은 꼭 필요할 때만 조심해서 사용해야 한다. 가장 좋은 방법은 타입 변환이 필요
없도록 같은 타입의 값들로만 표현식을 만드는 것이다.
비교 다음의 연산자들은 같은 타입의 두 값에 대해 boolean 타입 결과를 만들어 낸다. 같은가? (= =),
다른가? (! =), 미만인가? (<), 이하인가? (< =), 초과인가? ( >), 이상인가? ( > =). 이들 연산자는 비교
대상 값의 타입과 무관하게 boolean 타입 결과를 리턴하기 때문에 혼합 타입 연산자로도 알려져 있
다. boolean 값에 대한 표현식을 논리 표현식이라 한다. 나중에 살펴보겠지만 논리 표현식은 조건문
이나 반복문에서 중요한 역할을 한다.
기타 기본 데이터 타입 자바의 int는 232개의 서로 다른 값을 표현할 수 있게 디자인되었다. 따라서
32비트 기계어 단어 하나로 표현될 수 있다(많은 컴퓨팅 시스템들이 64비트 기계어 단위를 지원하지
만 자바에서 int는 여전히 32비트이다). double 타입의 경우에는 64비트 표현을 하도록 표준이 정해
져 있다. int와 double만으로도 거의 대부분의 정수, 실수 연산을 하는데 충분하다. 하지만 자바에서
는 상황에 맞게 더 효과적인 정수, 실수 연산을 할 수 있도록 다음과 같은 기본 데이터 타입들을 추가
로 지원한다.
• long: 산술 연산이 지원되는 64비트 정수
• short: 산술 연산이 지원되는 16비트 정수
• char: 산술 연산이 지원되는 16비트 정수
• byte: 산술 연산이 지원되는 8비트 정수
• float: 산술 연산이 지원되는 32비트 부동소수점 실수
이 책에서는 거의 대부분 int와 double을 사용한다. 따라서 int, double과 유사한 다른 데이터 타입
에 대해서는 더 자세하게 다루지 않는다.
명령문 자바 프로그램은 명령문들로 구성되어 있다. 명령문은 변수를 생성, 조작하거나 특정 데이터
타입의 값을 할당하거나 작업의 실행 흐름을 제어한다. 명령문은 중괄호 안에 나열되거나, 블록을 이
룸으로써 조직화되어 표현될 때가 많다.
• 선언문은 주어진 타입과 이름의 변수를 생성한다
• 대입문은 데이터 타입을 가지는 표현식이나 값을 변수에 연결한다. 자바에서는 묵시적인 대입
이 일어나기도 한다. 예를 들어 증가연산자를 int 타입 변수에 적용하면 증가된 값을 같은 변수
에 자동으로 대입시킨다.
026