Post

[Java] 변수 자료형 서식문자 형변환

저번 시간에는 IDE인 이클립스 포톤 버전을 설치하고 프린트를 출력해봤는데요.

이번 시간에는 여러 가지를 더 써보겠습니다~

*컴파일러의 해석 방향

컴파일러는 C언어에서의 비쥬얼 스튜디오처럼 위에서 아래로 좌에서 우로 읽습니다. 뭐 당연한 소리같지만, 사실 앞으로 복잡하고 다양한 코드를 짤 때에 항상 유의하여야 할 사항입니다!

*출력메소드

메소드가 뭐라했죠? 네! 뒤에 괄호가 붙으면 일단 메소드로 보자고 했죠~ 출력메소드는 말그대로 출력하는 메소드입니다. ㅋㅋ

1. 오류가 발생한 부분을 구체화 시키기 위한 목적

- 비쥬얼 스튜디오와 다르게 이클립스는 오류가 있어도 일단 그전까진 콘솔에서 출력을 해주더라고요.. 그래서 이를 이용해서 각각의 메소드사이에 출력메소드를 넣어주면 어디에서 오류가 발생한 것인지 알 수 있겠죠?

2. 값을 확인하기 위한 목적

- 말 그대로 어떤 타입의 변수에 올바른 값이 들어가 있는지 확인하기 위해 쓰입니다.

*변수(저장공간)

앞으로 변수는 저장공간이라 부르겠습니다. 우리가 흔히 수학에서 하는 것, x=10 이라는 문장이 있다고 합시다. 이것은 x는 10과 같다라는 뜻으로 쓰이지만 컴퓨터에서는 조금 다릅니다. 변수는 저장공간이기 때문에 이 공간 안에 어떠한 값이 필요합니다. 그래서 컴퓨터에서 x= 10은 x라는 저장공간에 10이라는 값을 대입시킨거죠. 그래서 ‘=’ 라는 문자를 대입연산자라고 합니다.

자료형(type)

자료형 type byte 값

정수형 int 4 -156, 0, 88

실수형 float 4 0.0F, 1.5F

double 8 0.0

문자형 char 2 ‘A’, ‘안’, ‘s’, ‘0’

문자열 String ? “A”, “a”, “1”, “신동희”

int부터 char는 우리가 C언어에서 봤던 그것 맞습니다 ㅎㅎ 다만 자바에서는 실수가 8바이트인 double 타입이 기본형이므로 float을 쓸 때에는 숫자 뒤에 F를 붙입니다.

그리고 뉴페이스 String을 보실 수가 있습니다. C언어는 문자열이라 하면 따로 자료형 타입이란 개념보단 배열의 의미였죠? 여기에는 String이라고 문자열이 따로 있습니다. 다만 String은 대문자죠? 그렇다면.. 예 맞습니다! 클래스네요 ^^

*변수의 선언

자료형 변수명 = 값; 아까 봤던 x = 10; 같은 겁니다.

자료형 변수명; 아니면 이런 식으로 변수명만 해서 선언을 할 수 있는데 웬만하면 초기값을 주는게 좋습니다. 왜냐하면 초기값이 없으면 본문에서 사용할 때 연산에 오류가 날 수 도 있기 때문입니다.

*변수 선언 시 RAM

int x = 10;

x라는 이름의 저장공간이 RAM에 만들어 지고 이를 할당한다고 말합니다.

할당된 x 저장공간에 10이 들어간 것입니다.

*주소(해시코드)

메모리(RAM)에 저장공간을 할당하면 고유한 값인(중복이 없는) 주소가 생성됩니다. C언어는 포인터라고 했지만, 여기선 해시코드라고 하나보네요.

사용

1
2
3
4
	int x = 10;
	x = 20;
	System.out.println(x+9);
	x = x + 8;

이런식으로 하면 됩니다. 처음에 10값으로 초기값을 주고 20을 대입했습니다. 그 후에 출력 메소드로 x+9를 출력하도록 했습니다. 값은 29가 나오겠지요? 그 밑에 x = x +8은 출력메소드 뒤에 있으니 출력은 되지 않겠네요.

*변수 선언 시 주의사항

같은 이름의 변수로 선언할 수 없습니다.

반드시 초기화를 해줍니다.

되도록 선언부에 한꺼번에 선언합니다.(상단)

*변수명 주의사항

문자부터 작성해야 합니다.

특수문자를 사용할 수 없습니다. (_제외)

되도록 소문자만 사용합니다.

공백을 사용할 수 없습니다. ( good_boy)

goodBoy : 카멜 표기법

명사를 사용합니다..

number,age,name … 변수 확인의 편의를 위한것입니다.

*서식문자(format)

반드시 따옴표 안에서 작성합니다.

%d : 10진수(decimal)

%o : 8진수(octal)

%x : 16진수(hexadecimal)

%f : 실수(float)

%c : 문자(character)

%s : 문자열(string)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
		int age=10;
		float weight = 10.5F;
		double height = 10.5;
		char hangle = '\uAC30';
		String alpha = "ABC";

		System.out.printf("나이 : %d살\n", age);
		//서식문자 %f에서 소수점을 자를 때 반올림된다.
		System.out.printf("몸무게 : %.2fkg\n",weight);
		System.out.println(height);
		System.out.println(hangle);
		System.out.println(alpha);
	}

printf는 서식문자를 사용할 수 있는 출력메소드입니다. printfln은 제어문자 \n(줄바꿈)이 메소드에 포함되어 있는 것입니다.

Desktop View

나머진 다 이해할 수 있는데 중간에 ‘갰’이건 뭔가요? C언어는 아스키코드를 사용하는 반면 자바는 유니코드를 사용합니다. 유니코드란 모든 언어(영어,한국어)들의 문자하나를 2byte 로 고정하고 사용하는 것입니다. 그래서

1
char hangle = '\uAC30';

이 문자형 변수를 보면 역슬래시 u 후에 AC30이 보이는데 이게 유니코드입니다. 그리고 그 코드의 문자값은 ‘갰’ 인겁니다.

*제어 문자

반드시 따옴표 안에서 작성한다.

”\n” : 줄바꿈(new line)

”\t” : 위 아래 줄 간격 맞추어 띄기(tab)

”\”” : 큰 따옴표 표현

”\’” : 작은 따옴표 표현

”\\” : \표현

*형변환

- 자동 형변환

정수 + 정수 = 정수

정수 + 실수 = 실수

3 + 0.0 = 3.0

- 강제 형변환(Casting)

(자료형)값

(int)3.9

이것은 C언어랑 비슷하군요.

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
		//자동 형변환
			System.out.println(10/3);
			System.out.println(10/3.0);
			System.out.println("==================");

			System.out.println(10/3);
			System.out.println((double)10/3);

	}

첫번째는 10나누기 3인데 정수로 표현하겠군요. 이때 소숫점은 그냥 버려집니다. 그래서 3이 나오죠 그 다음엔 3.0이므로 정수와 실수의 연산이 있으면 그 결과는 실수로 나옵니다.

네번째는 정수와 정수의 연산인데 10에 (double)이 앞에 있네요. 강제로 형변환을 실수로 한겁니다. 역시 값은 3.33333으로 나오겠네요 ^^

Desktop View

이번 시간엔 여기까지 하도록 하겠습니다~

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.