Q. 소문자 'a' 보다 10칸 뒤에 있는 문자는 무엇일까?
char ch1 = 'a';
System.out.println((char)((int)ch1+10));
// 풀이 1
// 1. ch1을 정수형 (int)로 강제 형변환
// 2. (int)ch1 + 10 -> 정수형끼리 계산
// 3. ((int)ch1 + 10)을 문자열인 (char)로 다시 형변환
System.out.println((char)(ch1+10));
// 풀이 2
// 1. ch1은 int 타입으로 자동 형변환되므로 강제 형변환을 할 필요가 없음. 바로 10을 더해 줌.
// 2. 정수 값인 (ch1+10)를 (char)로 강제 형변환
선언 및 초기화된 5개의 변수를 가지고 알맞은 사칙연산(+, -, *, /)과 형변환을 이용하여 주석에 작성되 값과 같은 결과가 나타나도록 코드를 완성하세요.
public class CastingPractice1 { public static void main(String[] args) { int iNum1 = 10; int iNum2 = 4; float fNum = 3.0f; double dNum = 2.5; char ch = 'A'; System.out.println( iNum1 iNum2 ); // 2 System.out.println( dNum ); // 2 System.out.println( iNum2 dNum ); // 10.0 System.out.println( iNum1 ); // 10.0 System.out.println( iNum1 iNum2 ); // 2.5 System.out.println( dNum ); // 2.5 System.out.println( fNum ); // 3 System.out.println( iNum1 fNum ); // 3 System.out.println( iNum1 fNum );// 3.3333333 System.out.println( iNum1 fNum ); // 3.3333333333333335 System.out.println( ch ); // 'A' System.out.println( ch ); // 65 System.out.println( ch iNum1 ); // 75 System.out.println( (ch iNum1) ); // 'K'
System.out.println( iNum1 / iNum2 ); // 2
System.out.println( (int)dNum ); // 2
// (int)로 자동 형변환
System.out.println( iNum2 * dNum ); // 10.0
// (double)로 자동 형변환
System.out.println( (double)iNum1 ); // 10.0
System.out.println( (double)iNum1 / (double)iNum2 ); //2.5
// System.out.println( (double)iNum1 / iNum2 );
// System.out.println( iNum1 / (double)iNum2 );
// 하나의 값만 (double)로 형변환을 하면 결과 값이 (double)로 자동 형변환이 된다.
System.out.println( dNum ); // 2.5
System.out.println( (int)fNum ); // 3
System.out.println( iNum1 / (int)fNum ); // 3
System.out.println( iNum1 / fNum ); // 3.3333333
System.out.println( (double)iNum1 / fNum ); // 3.3333333333333335
// float와 double의 차이점
// float : 소수점 아래 8번째 자리까지 연산 후 반올림
// double : 소수점 아래 16번째 자리까지 연산 후 반올림
System.out.println( "'"+ch+"'" ); // 'A'
System.out.println( (int)ch ); // 65
System.out.println( ch + iNum1 ); // 75
System.out.println( "'"+(char)(ch + iNum1)+"'" ); // 'K'