<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>큰 자리수와 낮은자리수</title>
</head>
<body>
<h3>큰 자리수와 낮은자리수 같은지 비교</h3><hr>
<script>
var str=prompt("숫자입력","0");
if(isFinite(str)){
var n = parseInt(str);
if(n>0){
var least=n%10;
var most=0;
while(n!=0){
most=n%10;
n=Math.floor(n/10);
}
if(most==least)
document.write(str+": 같음");
else
document.write(str+": 다름");
}
else
document.write(str+": 음수나 0은 다루지 않습니다.");
}
else{
document.write(str+": 숫자가 아닙니다.");
}
</script>
</body>
</html>
여기서
var most=0;
while(n!=0){
most=n%10;
n=Math.floor(n/10);
이 부분을 볼때 n이 8997이라고 하면
most=7
n=899
가 되어서 most 값이 8이 아닌 7이 되는 거 같은데
실행하면 맞게 나오고 머릿속에는 이해가 잘 안되요
설명좀 부탁드립니다.
while(n!=0){
most=n%10;
n=Math.floor(n/10);
n이 8997이라고 하면, 첫번째 while 문을 실행하면
most=7
n=899
이 되겟지요.
그런데 while(899 ! = 0) 이 참이므로 다시 while 문을 실행하면
n=899
most=9
n=89
가 됩니다.
그런데 또 다시 while(89 ! = 0) 이 참이므로 다시 while 문을 실행하면
most=9
n=8
가 됩니다.
그런데 또 다시 while(8 ! = 0) 이 참이므로 다시 while 문을 실행하면
most=8
n=0
이 됩니다.
이제, while(0 ! = 0) 이 거짓이므로 while 문 실행을 끝내고 while 문을 빠져나올 때
most=8
n=0
입니다.