본문 바로가기
혼자서 개발새발

int a 값에 메소드 return값을 담는다면?

by 휴일이 2022. 10. 1.

 

다른 사람이 짠 코드 끙끙거리면서 분석하다가

위대한 발견을 한 거 같아서

개발자 친구한테 신나서 말했더니

 

"코린이ㅋㅋㅋㅋㅋㅋ함수공부 다시하셈ㅋㅋㅋㅋㅋ"

소리 들었다 ㅡ.ㅡ

그래도 정리하려고 써본다 ㅋㅋ

 

 

 

	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