pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://learn.javascript.ru/task/which-value-while

= {"RUB":1,"EUR":0.01089671894879181,"USD":0.012555313532356732,"AMD":4.738877539652725};Какие значения выведет цикл while?
вернуться к уроку

Какие значения выведет цикл while?

важность: 4

Для каждого цикла запишите, какие значения он выведет. Потом сравните с ответом.

Оба цикла выводят alert с одинаковыми значениями или нет?

  1. Префиксный вариант ++i:

    let i = 0;
    while (++i < 5) alert( i );
  2. Постфиксный вариант i++

    let i = 0;
    while (i++ < 5) alert( i );

Задача демонстрирует, как постфиксные/префиксные варианты могут повлиять на результат, когда используются в сравнениях.

  1. От 1 до 4

    let i = 0;
    while (++i < 5) alert( i );

    Первое значение: i = 1, так как операция ++i сначала увеличит i, а потом уже произойдёт сравнение и выполнение alert.

    Далее 2, 3, 4… Значения выводятся одно за другим. Для каждого значения сначала происходит увеличение, а потом – сравнение, так как ++ стоит перед переменной.

    При i = 4 произойдёт увеличение i до 5, а потом сравнение while (5 < 5) – это неверно. Поэтому на этом цикл остановится, и значение 5 выведено не будет.

  2. От 1 до 5

    let i = 0;
    while (i++ < 5) alert( i );

    Первое значение: i = 1. Остановимся на нём подробнее. Оператор i++ увеличивает i, возвращая старое значение, так что в сравнении i++ < 5 будет участвовать i = 0 (в отличие от ++i < 5).

    Но последующий вызов alert уже не относится к этому выражению, так что получит новый i = 1.

    Далее следуют 2, 3, 4….

    Остановимся на i = 4. Префиксная форма ++i увеличила бы i и использовала бы в сравнении 5. Но здесь мы имеем постфиксную форму i++, поэтому она увеличивает i до 5, но возвращает старое значение. Таким образом, сравнение фактически равно while (4 < 5)true, поэтому срабатывает alert.

    Значение i = 5 – последнее, так как на следующем шаге while (5 < 5)false.

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy