While без фигурных скобок
Функция Эйлера. Почему работает while без фигурных скобок?
function properFractions2(n) {
if (n==1) return 0;
let result = n;
for (let i = 2; i * i <= n; ++i) {
if (n % i == 0) {
while (n % i == 0)
n /= i;
result -= result / i;
}
}
if (n > 1) result -= result / n;
return result;
}
А с фигурными скобками совсем другой результат. И почему отдельный while не работает без фигурных скобок?
let t = 0;
while (t < 10) {
console.log(t);
t += 1;
}
Ответы (1 шт):
Автор решения: Vladimir Ignatenko
→ Ссылка
Фигурный скобки определяют блок, который выполняется в цикле. Если фигурные скобки не используются, то блоком является один единственный оператор.
Т.е. если есть код
var t = 10;
while(t > 0) {
t--;
console.log(t)
}
То так как указаны скобки, то операции декремент переменной и вывод значения будут выполняться в цикле. В результате будут выведены значения от 9 до 0
Если же не использовать скобки
var t = 10;
while(t > 0)
t--;
console.log(t)
То в цикле будет выполянятся только оператор декремента. А вывод значения будет сделан уже после цикла. В результате этот код выведет только 0