Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос про префиксную и постфиксную форму инкремента (https://javascript.ru/forum/misc/80234-vopros-pro-prefiksnuyu-i-postfiksnuyu-formu-inkrementa.html)

Voffalex 12.05.2020 15:28

Вопрос про префиксную и постфиксную форму инкремента
 
Подскажите, пожалуйста, почему в первом случае получается 15, а во втором 10, а не наоборот?

1
let count = 0,
sum = 0;
while ( count++ < 5) {
sum += count;
}
console.log(sum);

2
let count = 0,
sum = 0;
while ( ++count < 5) {
sum += count;
}
console.log(sum);


Ведь если использовать более примитивный пример, то префиксная форма (2) как раз таки сразу возвращает увеличенное значение.
Или дело в цикле, а не инкременте?


let x = 0;
console.log (x++); // 0

let y = 0;
console.log (++y); // 1

Уже прочитал несколько разных источников, вроде и понятно все по отдельности, но не понятно, почему в задаче выше именно так получается. :(

рони 12.05.2020 15:41

Цитата:

Сообщение от Voffalex
count++ < 5

сначала проверяем что count меньше пяти, затем прибавляем единицу.
let count = 0,
sum = 0;
while ( count++ < 5) {\\условно здесь count=4
sum += count;\\а здесь уже count=5
}
console.log(sum);

laimas 12.05.2020 15:42

Цитата:

Сообщение от Voffalex
Или дело именно в цикле?

В приращении счетчика и условии. Выводите в цикле, до суммирования, console.log(count, sum); станет понятно.

Voffalex 12.05.2020 16:23

Цитата:

Сообщение от laimas (Сообщение 524124)
Выводите в цикле, до суммирования, console.log(count, sum); станет понятно.

Спасибо, так действительно наглядно видно:)


Часовой пояс GMT +3, время: 12:53.