본문 바로가기

JAVA/혼자공부하는자바

[JAVA기초] 변수의 타입 (문자&실수 데이터타입, 이스케이프 문자, 실수 리터럴, 논리 타입)

728x90

 

 

문자열(Stringer)

 Java에서는 문자와 문자열을 다른 것으로 인식을 하여 별도의 타입 구분이 필요하다.

  • 큰 따옴표로 감싼 문자들을 문자열이라고 함.
  • 문자열은 char 타입에 저장할 수 없음
  • String 타입에 저장 (String 타입은 Java의 기본 타입은 아니며 참조 타입에 해당됨)

 

이스케이프 문자 (escape)

  • 문자열 내부에 \(역슬래시)는 이스케이프 문자를 뜻함
  • 이스케이프 문자를 사용하면 특정 문자를 포함시키거나, 문자열의 출력을 제어할 수 있음 
  • 예) 문자열 내부에 " 등 특수적인 문자를 포함하여야 할 때 사용한다.
이스케이프 문자 출력 용도
\t 탭만큼 띄움
\n 줄 바꿈(라인 피드)
\r 캐리지리턴
\" " 출력
\' ' 출력
\\ \ 출력
\u16진수 16진수 유니코드에 해당하는 문자 출력

\t를 사용하여 문자 사이 간격을 탭만큼 띄워 출력함

 

 

\n을 이용하여 한 행씩 띄워서 출력함

 

 

출력문인 System.out.println에서 ln은 다음 출력문을 개행(line-break)해주는 역할을 한다.

ln을 지운 뒤 출력하면 위와 같이 행바꿈 없이 출력이 된다.

 

 

줄 바꿈 이스케이프를 사용하여 print로도 println을 사용한 효과를 만들 수 있다.

 

 

큰따옴표, 역슬래시를 출력하려면 앞에처럼 \를 붙여주고 사용하여야 한다.

 

 

실수 타입(Real Number Types)

자바에서는 두 가지의 실수 타입(float, double)을 제공한다.

두 데이터 타입은 부동소수점 형식이기 때문에 정확한 숫자를 저장할 수가 없어 정밀도는 위와 같다.

(double이 더 근사치에 가깝게 저장할 수 있다)

 

 

 

실수 리터럴

 

소스 코드에서 소수점은 리터럴은 10진수 실수로 인식

ex) 0.25, -3.14

 

알파벳 e 또는 E가 포함된 숫자 리터럴은 지수 및 가수로 표현된, 소수점 있는 10진수 실수로 인식

5e2 -> 5.0 * 10^2 = 500.0

0.12E-2 -> 0.12 * 10^-2 = 0.0012

 

 

 

자바는 실수 리터럴을 기본적으로 double 타입으로 해석

자바는 3.14를 double types로 인식을 하지만 데이터 타입은 float이어서 컴파일 에러 발생

 

 

데이터 타입을 10의 승수를 사용하거나 소수점을 사용하여 double타입에 선언해주어야 출력이 가능하다.

 

 

float타입으로 저장하기 위해서는 리터럴 뒤 f 혹은 F를 붙여 리터럴 값이 float 타입인 것을 표시해주어야 한다.

 

 

float 형식으로 소수점을 나열하여 출력해보자 소수점 아래 8번 자리까지 출력이 된다.

(맨 끝자리가 8이 아니라 9가 되는 이유는 9 아래부터 반올림 처리되어서 그렇다)

 

 

같은 수를 double 타입을 이용해 출력해보자.

 

*double 타입이 float 타입보다 2배가량 정밀도가 높아 정확한 데이터를 저장할 수 있다.

float : 소수점 아래 약 7번째(6~9)

double : 소수점 아래 약 15번째(15~18)

 

 

실수 리터럴 e를 이용하여 10의 승수를 출력, float형식에 사용할 때에는 f를 입력해주는 것을 잊지 말자.

 

 

 

논리 타입(Logical Types)

 

참과 거짓에 해당하는 true와 false 리터럴을 저장하는 타입

두 가지 상태 값에 따라 제어문의 실행 흐름을 변경하는 데 사용한다.

 

변수 stop에 true값을 주었더니 if문이 true값으로 동작하여 '중지합니다.'가 출력됨

 

변수 stop에 false값을 주었더니 if문이 false값으로 동작하여 else분기의 '시작합니다.'가 출력됨