자바, 입문하기!

자바, 입문하기!

프로그래밍 기초, 입문자를 위한 자바!

04 타입과 형 변환

# 타입과 형 변환 타입 에러는 왜 나는 걸까? 타입 관련 주의점을 알아보자! ![클라우드스터딩-자바-타입-에러](https://i.imgur.com/DzhfhZt.png) ## 나눗셈 연산 주의 --- int와 int의 연산 결과는 int이다. double과 int의 연산은 double이다. 숫자간 연산은 더 큰 타입을 따른다. ``` double a = 5.0 / 2.0; // 2.5 int b = 4 / 2; // 2 int c = 5 / 2; // 2.5 (X) => 2 (O) ``` ## 타입 불일치 주의 --- 변수에 값 대입 시, 그 값이 변수의 타입과 일치해야 한다. ``` // 타입 불일치 에러 int score = "100"; // 해결 방법 int score = 100; // int로 일치 String score = "100"; // String으로 일치 int score = Integer.parseInt("100"); // "100" => 100 ``` ## 타입 변환 주의 --- 타입 불일치의 문제는 타입 변환을 통해 해결가능하다. 타입변환은 자동 변환과 직접 변환이 있다. #### 자동 변환 int는 double로 대입될 수 있다. 2를 2.0으로 보아도 무방하다. 이러한 자동 변환은 더 큰 타입으로 대입 시 발생한다. (byte(1) < short(2) < int(4) < long(8)) ``` // 자동 변환 (더 큰 타입으로 대입될 때) double p = 2; // 2 => 2.0 int n = 5 / 2; // 2 double q = n; // 2 => 2.0 ``` #### 직접 변환 거꾸로 double은 int로 대입될 수 없다. 10.4를 10이라고 볼 수 없기때문. 강제로 소수점을 버리고 정수로 만들 순 있다. 이러한 문법을 타입 캐스팅(casting)이라 한다. ``` // 에러 발생 int r = 10.4; // ERROR // 실수를 정수로 강제 캐스팅 int r = (int) 10.4; // 10.4 => 10 ``` ![클라우드스터딩-자바-형변환](https://i.imgur.com/g6vuhiZ.gif) ## 요약 --- ![클라우드스터딩-자바-타입과-형변환-요약](https://i.imgur.com/U8O3Y9L.png) - int 와 int의 연산 => int - 타입 불일치(type mismatch)란, 값과 변수의 타입이 달라 생기는 에러다. - 타입은 때때로 자동 변환(implicit conversion)되기도 한다. - 필요 시 타입을 직접 변환(explicit conversion)할 수 있다. - double은 int로 캐스팅(casting) 가능하다. ## 확인하기 --- <div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cb08ba7790970001464d003" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cb08ba7790970001464d003/q/1?method=iframe"></iframe></div></div> ## 도서구매 <a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!