<script>
function solution(arr) {
let answer;
let max = Number.MIN_SAFE_INTEGER
for (let x of arr) {
let tmp = x;
let sum = 0;
while (tmp) {
sum += tmp % 10;
tmp = Math.floor(tmp / 10);
}
if (max < sum) {
max = sum;
answer = x;
} else if (max === sum) {
if (answer < x) answer = x;
}
}
return answer;
}
let arr = [128, 460, 603, 40, 521, 137, 123];
console.log(solution(arr));
while (tmp) {
sum += tmp % 10;
tmp = Math.floor(tmp / 10);
}
왜 위의 while 반복문은 무한루프에 빠지지 않는건가요?
아래와 같이 중간에 if break를 넣을 필요 없이 왜 코드가 잘 구현되는지 알고 싶습니다.
while (tmp) {
sum += tmp % 10;
tmp = Math.floor(tmp / 10);
if (tmp === 0) break;
}