function solution(num) {
if(num === 1){
return 0
}
for(let i=0;i<501;i++){
console.log(num,i)
if(num%2===0){
num = num/2
}else if(num%2!==0){
num = (num*3)+1
}else if(num === 1){
return i
break
}else if(i === 500){
return -1
}
}
}
아래는 정답 코드입니다.
아래처럼 적으면 break 를 통해 잘 빠져나오는데
위에처럼 적으면 빠져나오지 못하는 이유가 궁금합니다.
1도 홀수여서 else if(num%2!==0) 에 걸리기 때문에 연산이 계속해서 들어가기 때문입니다. 아래는 홀수판정보다 num이 1인지부터 먼저 판단하기 때문에 빠져나올 수 있습니다.