자료형, 리터럴, 출력
▶변수의 타입
우리가 주로 사용하는 값(data)의 종류(type)는 크게 문자와 숫자로 나눌 수 있고
숫자는 다시 정수형과 실수형으로 나눌 수 있다.
변수를 선언하면 메모리에 공간을 마련하는데 그공간의 크기와 저장형식을 정의한 것이 자료형이다.
기본 자료형은 모두 8개의 타입이있다.
(1) 논리형 boolean (1Byte)
- true와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다.
(2) 문자형 char (2Byte)
- 문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다.
(3) 정수형 byte(1byte), short(2byte), int(4byte), long(8byte)
- 정수를 저장하는데 사용되며, 주로 int가 사용된다. byte는 이진 데이터를 다룰 때 사용되며, short는 C언어와의 호환을 위해서 추가되었다.
(4) 실수형 float(4byte), double(8byte)
- 실수를 저장하는데 사용되며, 주로 double이 사용된다. 실수형에서 double을 사용하는 이유는 정밀도를 높이기 위해서이다.
▶리터럴(상수) ? ?
수학에서 상수는 3, 2, 3.14 와 같은 값들을 상수라고 부른다. 프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 떄문에 이와 구분하기위해 수학의 상수는 다른 이름으로 불러야 했다. 바로 리터럴이다. 그러니 리터럴은 단지 우리가 기존에 알고 있던 '상수'이다.
이러한 상수의 선언은 int num=10; 이라는 인트형 변수가 있다면 그 앞에 final을 붙여준다면 final int num=10 ; num은 값을 변경할 수 없는 상수가 되며, 바꾸려고 시도하면 에러가 표시된다.
변수의 타입이 인듯이 리터럴도 타입이 있고 접미사가 있다. 여기서 C언어나 파이썬이랑 다른부분이 있다. 위에서 보듯 변수 중 정수형의 기본은 int고 실수형의 기본은 double 이다. 그래서 정수형의 경우 long타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고 byte or short탑의 리터럴은 별도로 존재하지 않는다. 또 실수형에서는 float타입의 리터럴에는 접미사 f 또는 F를 붙인다.
따라서 long num = 138204; 라고하면 오류고 숫자뒤에 138204l 'l'을 붙여줘야하고
float=3.14; 라고하면 오류가나고 숫자뒤에 3.14f 'f'를 붙여줘야한다.
또 c언어와 같이 8진수는 리터럴 앞에 '0'을 붙이고 16진수에는 '0x'를 붙이고 2진수는 '0b'를 붙인다. 숫자 10을 각각 표현하면 '010' '0x10' '0b10'이 된다.
그리고 문자 리터럴과 문자열 리터럴이 있는데 , c언어와 파이썬과 다른 것 중 하나가 문자열 리터럴이다. 변수앞에 String을 붙여서 문자열을 저장한다.
String name = "kimhyun" 이렇게 문자열을 쉽게 저장한다.
문자 리터럴은 char='A' 이런식으로 C랑 비슷하다.
▶출력 매서드 ??
화면에 출력시켜주는 메서드는 System.out.print , System.out.println 이 있다.
System.out.printf는 c언어의 printf의 역할을 하고
printnl은 편리기능으로 문장끝에 \n을 안붙여도 개행이된다.
이 소스코드의 실행결과를 보자.
Hello라는 문자열에 개행을 해주지 않았지만 println으로 인해 자동 개행이되었고
println + 문자열내에 \n을 해주면 개행이 2번 시행되는 것을 확인 할 수 있다.
딱보면 println은 귀찮은 \n(개행)을 해주지않고 편하게 느껴진다. 하지만 이것은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.
그래서 c언어와 같이 printf()를 사용해서 %d %s %c %f %e %o %x 등등 지시자를 이용할 수 있다.