• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

square 메소드와 cube 메소드는 원래 캐스팅 위치가 서로 다른가요?

22.05.22 18:07 작성 조회수 131

0

square (3.0); => square ((int) 3.0);
cube (2); => (int) cube (2);
 
이렇게 해야만 결과 값이 잘 나오고 제가 원래 생각 했던
 
square (3.0); => square ((int) 3.0);
cube (2); => cube ((int) 2);
 
로 하면 에러가 나더라구요. ㅠㅠ
 
이렇게 스퀘어 메소드와 큐브 메소드의 캐스팅 위치에 차이가 있는 건 상황에 따라 달라지는 게 아니라 원래 그렇기 때문에 필히 기억해야만 하는 부분인 거죠?

답변 1

답변을 작성해보세요.

1

질문주신 코드의 핵심은
캐스팅의 위치입니다.

square( (int) 3.0 ); 의 경우,
메소드의 입력값을 실수 3.0이 아닌
정수 3으로 캐스팅을 하는 반면

(int) cube(2); 의 경우,
메소드의 반환값 8.0을
정수 8로 캐스팅하는 코드가 됩니다.

캐스팅은 메소드 정의와
반환값을 어떻게 사용하느냐 등의
상황을 고려해야 합니다 👻

김한샘님의 프로필

김한샘

질문자

2022.05.29

소중한 답변 이제야 확인 했습니다. (ㅠ ㅠ) 감사합니다. 요즘 저랑 껌딱지처럼 붙어 있는 홍팍님의 강의 항상 잘 듣고 있습니다. 많은 사람들의 홍팍님 강의가 입문자에게 제일 좋다는 리뷰를 보고 솔깃해서 저도 따라 보게 된 걸 요즘 한 일 중에 가장 잘한 일로 생각하고 있어요!!! :) 

항상 건강하시고 좋은 일만 생기시길 바랍니다!!! 저도 공부 열심히 하겠습니다.ㅎㅎ