我正在尝试使用while循环来减少计数器,然后在条件语句中对其进行评估.
例如,此代码将导致6
var counter = 3;
var factorial = 1;
while (counter)
factorial *= counter--;
console.log(factorial);Run Code Online (Sandbox Code Playgroud)
而这个结果为0
var counter = 3;
var factorial = 1;
while (counter--)
factorial *= counter;
console.log(factorial);Run Code Online (Sandbox Code Playgroud)
var counter = 3;
var factorial = 1;
while (counter--)
factorial *= counter;
console.log(factorial);
Run Code Online (Sandbox Code Playgroud)
在更改计数器之前评估while条件.所以在第一个循环中,你评估3并传递vaue 2进行乘法运算.然后你评估2> 0并且你将1传递给乘法,因为counter--意味着首先使用当前值并且在值减少1之后立即使用.
所以在下一步中你评估if(1)哪个是真但你传递0,所以乘法的结果是0.然后while循环将使评估失败,因为计数器将是一个假值,如0