#잘못된 파라미터 ## CODE <a class='btn btn-default' href='/codes/5299'>Link</a> ``` public class WhatIsWrong { public static void main(String[] args) { int a = square((int)3.0); int b = (int)cube(2); System.out.printf("a = %d, b = %d\n", a, b); } public static int square(int n) { return n * n; } public static double cube(double n) { return n * n * n; } } ``` ## INPUT ``` ``` ## OUPUT ``` a = 9, b = 8 ``` cube(2) 를 (int)cube(2) 로 바꿔서 public static double cube(double n) { return n * n * n; } double n 에 대입했는데 어떻게 값이 8.0이 아니라 8이에요? 그리고 int를 double에 대입할 수 있나요?
## 답변 ``` int b = (int) cube(2); ``` ### 코드의 실행 흐름 위 코드의 실행 흐름은 다음과 같습니다. 1) cube(2) 호출 2) 전달 값이 파라미터로 대입 ``` // int는 double로 자동변환 되어 대입됩니다. double n = 2; // 2.0 ``` 3) 메소드 수행 후 리턴값 반환 ``` return n * n * n; // 8.0 ``` 4) 반환값을 int로 캐스팅 후 대입 ``` int b = (int) 8.0; ```