Когда это l oop становится ложным? только деление должно вызывать это - PullRequest
0 голосов
/ 11 января 2020

Фрагмент простого кода, который я нашел, я хочу выяснить, что останавливает это l oop, действительно ли значение истинно, никогда не превращается в падение, если его просто разделить на 10?

число не имеет значения, какие числа, кроме 0, всегда равны истине, так в чем же идея?

Вот код:

var value = 2000, sum = 0;

while (value) {
  sum += value % 10;
  value = Math.floor(value / 10);
}

console.log(sum);

Ответы [ 2 ]

2 голосов
/ 11 января 2020

Как только value / 10 достигнет значения меньше 1, Math.floor сделает результат 0. Это приведет к завершению l oop перед следующей итерацией.

0 голосов
/ 11 января 2020

На самом деле value (условие while) становится 0, просто добавьте console.log вот так, чтобы увидеть его:

var value = 2000, sum = 0;

while (value) {
  sum += value % 10;
  value = Math.floor(value / 10);
  console.log('here is  the value ' + value);
}

console.log(sum);

Возвращается сумма, которая не является условием while.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...