210516
형변환을 사용하여 오류잡기 🤦♀️
byte a = 100;
int b = a;
byte c = b;
코드 넣어주세용
int b = a;
위 코드에서 a는 원래 byte형이다.
변수와 같은 데이터타입으로 변경하기 위해서 형변환을 해줘야 하는데,
java에서는 이를 int로 자동형변환 시켜준다.
가능한 이유는 자동형변환의 원칙은 표현범위가 좁은 데이터 타입에서
넓은 데이터 타입으로만 변화 가능하기 때문에
byte -> int로 자동 형변환 된 것이다.
byte c = b;
위 코드는 오류가 뜨는데, 현재 b는 int형의
데이터타입을 가지고 있기 때문이다.
형변환을 이용하여 강제(명시적)형변환을 시켜주어야 한다.
byte c = (byte)b;
위와 같이 byte형으로 강제형변환을 시켜주면 에러가 잡힌다.
byte a = 100;
int b = a;
byte c = (byte) b;
System.out.println(c);
위와 같이 하면 에러가 잡히고 100이 출력된다.
상수 또한 데이터타입을 가지고 있기 때문에
변수와 상수의 데이터타입을 일치시켜야 한다.
이 개념을 몰랐었고,
* 표험범위가 좁은 데이터타입에서 넓은 데이터타입으로는
자동형변환이 된다는 것
* 반대 경우에는 강제형변환을 시켜줘야 한다는 것
꼭 숙지!-!
byte a = 100;
int b = 2147483647;
byte c = (byte)b;
System.out.println(c);
위 코드는 -1이 출력되는데 왜 그 값이 나오는지.
이건 남자친구가 궁금하다고 했는데 나도 궁금해져서
이것도 여쭤봐야겠다..
Author And Source
이 문제에 관하여(210516), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@crfaceit/Day6저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)