返回课程

偶尔的无限循环

重要性:4

这个循环是无限的。它永远不会结束。为什么?

let i = 0;
while (i != 10) {
  i += 0.2;
}

这是因为 i 永远不会等于 10

运行它以查看 i实际

let i = 0;
while (i < 11) {
  i += 0.2;
  if (i > 9.8 && i < 10.2) alert( i );
}

它们都不完全等于 10

这种情况发生是因为添加像 0.2 这样的分数时会造成精度损失。

结论:在处理小数时,避免使用相等性检查。