在while循环中while循环有不同的结果吗?

在while循环中while循环有不同的结果吗?

问题描述:

我遇到了sololearn这个问题..为什么答案是36而不是6?在while循环中while循环有不同的结果吗?

var x = 326; 

var prod = 1; 

while (x>0) { 
    prod *= x%10; 
    x = (x-x%10)/10; 
    } 

console.log(prod); 
+0

为什么不调试它,在循环中添加一些日志,找出它并告诉我们? – adeneo

+2

console.log()是你的朋友.... – epascarello

+0

不,模数如果放置在while循环中没有不同的结果。 –

此线取x变量的最后一位,并将其乘到prod

prod *= x % 10; 

此行删除的x最后一位:

x = (x - x % 10)/10; 

第一循环:

  • 最后位= 6
  • prod因此等于6
  • x等于32

第二循环:

  • 最后位数= 2
  • prod因此等于6 * 2 = 12
  • x等于3

第三循环:

  • 最后位数= 3
  • prod因此等于12×3 = 36
  • x等于0

let x = 326; 
 

 
let prod = 1; 
 

 
while (x > 0) { 
 
    prod *= x % 10; 
 
    console.log({prod}); 
 
    x = (x - x % 10)/10; 
 
    console.log({x}); 
 
} 
 

 
console.log(prod);