혼자서 개발새발
int a 값에 메소드 return값을 담는다면?
휴일이
2022. 10. 1. 23:33
다른 사람이 짠 코드 끙끙거리면서 분석하다가
위대한 발견을 한 거 같아서
개발자 친구한테 신나서 말했더니
"코린이ㅋㅋㅋㅋㅋㅋ함수공부 다시하셈ㅋㅋㅋㅋㅋ"
소리 들었다 ㅡ.ㅡ
그래도 정리하려고 써본다 ㅋㅋ
public int real() {
System.out.println("사랑해요");
return 111;
}
public void good() {
System.out.println("아니");
int a = real();
System.out.println(a);
}
good() 을 불러오면 콘솔 창에는 어떻게 출력될까?
나는 당연히
아니
111
이렇게 출력될 줄 알았다
하지만
아니
사랑해요
111
이렇게 출력되는 것이었다!!!!!!ㅡ.ㅡ
이게 왜 이렇게 출력되지?하고
담배를 몇개나 태웠는지 모른다 ㅋㅋㅋㅋㅋ
왜 이렇게 출력되냐!!
public int real() { //3.real 메소드 실행
System.out.println("사랑해요"); //4.사랑해요 출력
return 111; //5.real 출력값이 111이 되고 메소드 종료
}
public void good() { //good() 출력하기
System.out.println("아니"); //1.제일 먼저 출력됨
int a = real(); //2.a에 real()을 담기 위해서는 real 메소드를 실행시켜야함
System.out.println(a); //6.a에 담긴 real의 반환값 111이 출력됨
}
결국은
아니
사랑해요
111
이렇게 출력 되는 것이 정답이었다!
책에서 본 예제들에는
return값이 int라면
ㄴ 출력값을 계산하는 식(return값을 주기 위한 식) 밖에 없어서
당연히 출력값이 int면...
사랑해요는 출력 안 되어야 하는 거 아냐?! 라고 생각했었다 ㅠㅠ하
나란 빡대가리........ㅎ
저거 때문에 시간을 얼마나 잡아먹었는지 모른다 ㅠㅠ
알게되니 후련하다만
너무 쉬운 문제여서 허무했다...
코린이 오늘의 일기 끝 ^^!
728x90