Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

mommy computer

변수(variable) / 형변환(casting) 본문

Programming/Java

변수(variable) / 형변환(casting)

Dahn 2016. 10. 24. 12:01

1. 변수(variable) : 저장소를 식별하기 위해 붙이는 이름


1) 변수의 필요성


void main(){
 int, int
}


컴퓨터에 정수데이터가 2번들어가므로 8바이트를 확보하라고 명령을 내린 것이다.
첫번째 데이터와 두번째 데이터를 더하라는 명령을 내리려면 서로 구분을 해줘야 함.
identifier라고 부르는 것으로, 아래와 같이 바꿔준다.

int a;
int b;
syso(a+b); 

* 세미콜론(;)은 한 문장이 끝났다, '수행하라'는 마침표 역할 수행
* 해석하면, a방 안에 있는 데이터를 꺼내와라, b방 안에 있는 데이터를 꺼내와라, 그리고 더한다음 출력하라!


2) 변수 이름 만들 때 주의사항
- 어떤 데이터가 들어올 것인지 데이터의 종류를 파악해서 쉽게 기억할 수 있는 단어로 명명
- 예를 들어, 비만 측정 프로그램을 만들 때, 사용자한테 체중, 키를 입력받는다.
void main(){

 double height;
 double weight;

 height = 171.5; //height라는 저장소에 데이터를 대입하라 ("="기호를 대입연산자라고 부름)
 weight = 52.3;

}

- 특수문자 및 공백을 사용할 수 없다.
  단, _은 사용가능하므로 공백을 사용해야 할 경우 "apple_orange"라고 표현할 수 있다.
  또는 대문자 사용이 가능하므로 카멜표기법으로 쓴다. "AppleOrange"

- 변수에는 숫자가 맨 앞에 올 수 없다. 
   ex. 1main(X), m1ain(O)

- 대문자와 소문자가 서로 구분이 된다.
   max ≠ Max

- 키워드는 사용할 수 없다.



 

2. 형변환(casting) - 데이터 타입을 바꿀 수 있는 툴

 

1) 자동 형변환(implicit)
- 정수 계열에서 int보다 작은 타입이 연산할 때 자동으로 int타입으로 바뀐다.
ex. int보다 작은 정수 계열 : byte, short ... char(문자형에 따른 코드값을 갖고 있어서 int로 침..)
    위 세 개의 자료형이 연산할 때는 자동으로 int형으로 변경이 된다.
- 같은 타입끼리 연산할 때 
ex. int형 + int형 = 결과값이 그대로 int형
- 다른 타입끼리 연산할 때
ex. int형 + double형 = 결과값은 "큰 타입"쪽으로 나온다.
    5 / 2 -> 2.5(x) 그냥 정수 저장소에 결과를 넣는다. 따라서 2가 계산된다. 그리고 나머지 1이 발생한다(올림현상. 출력되지는 않음).
    따라서, 5 / 2 -> 2(o)
    2.5라는 결과값을 갖기 위해서는 어느 한 쪽이 실수형이 되어야 한다.
    5(int-4byte, 32bit)/2.0(double-8byte, 64bit), 5.0/2, 5.0/2.0 

    위 세가지처럼 하나라도 double형 데이터가 들어가줘야 정답(2.5)가 나온다.
    이는 실수(double)에 맞게 컴퓨터가 자동으로 정수에 .0이라는 소수부가 있다고 가정하고 계산하기 때문이다.

    이를 "자동 형변환 됐다"라고 한다.


ex. 10 + 10L = 20 (여기서 20은 Long데이터이지만, 화면에 출력되지 않으므로 주의)
    int a = 10 + 10L; (에러가 난다. 왜냐하면 저장소와 데이터 크기가 맞지 않기 때문!)
    저장소    데이터
    4byte     8byte

    이를 성립시키기 위해서는 "강제 형변환"이 필요하다.


2) 강제 형변환(explicit) - 사용자가 데이터의 타입을 강제로 변경시키는 것.

ex. (int)5.6; -> 그러면 5.6에서 .6을 버린다. (5라는 데이터만 남게 된다)
    (double)5 -> 5라는 int형을 5.0으로 소수부를 준다.
    (char)65 -> 65라는 코드값을 인식해서 문자형 변수에 대입이 가능하게 된다.
    (int)A -> 'A'라는 문자는 정수형으로 형변환되면서 코드값 65를 int형 변수에 대입할 수 있다.



Comments