while문 종료 후..

조회수 73회

public int solution(int num) { int answer = num; int cnt = 0;

         while (answer > 1){

        if (answer % 2 == 0) {
            cnt++;
            answer = answer / 2;
        }
        if (answer % 2 == 1) {
            cnt++;
            answer = answer * 3 + 1;
        }

        if (cnt == 500) {
            cnt = -1;
            break;
        }
    }

    System.out.println(cnt);
    return cnt;
} 

main은 생략하였습니다. answer값이 1이 되는 과정을 카운팅하고 카운팅 값을 리턴하고싶은데요..
breakpoint를 while에 찍은 후  디버깅 시 while문이 끝난 후 cnt를 리턴하지 못하고 종료된건지 어쩐건지 멈춰버립니다..
그냥 실행해서 num에 6을 입력하면 -1이 출력되구요..

return 위 print는 디버깅 용도로 넣어놨는데 저기 타지도 않고 while문 종료 후 디버깅이 멈춰버립니다. 왜그런걸까요..? 그리고 그냥 run하면 6 입력 시 -1이 찍히는 걸까요..원래 출력되어야하는 값는 8입니다. 도통모르겠어서 질문남깁니다..

2 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.