Advertisement
Timkor

solvingLoopQuiz2

Sep 8th, 2020 (edited)
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Викторины задуманы чтобы человек ошибался и разбираясь лучше понимал где и почему, поэтому неверный ответ - это хорошо!*/
  2. let a = 0;
  3. //  b = 1(1) -  прединкремент увеличивает переменную и сразу возвращает (подставляет вместо нее) новое увеличенное значение
  4. let b = ++a; // после этой строки b === 1, a === 1
  5. //    1 !== 1 + 1 // "заходим в цикл", т.к. его условие истинно: 1 !== 2 (*как работает цикл for описано ниже)
  6. for(; a !== b + 1; b++) { // выражение a !== b + 1; не изменяет переменные,т.к. нет не присвоений, не инкрементов;
  7.     a++; // увеличиваем на 1, теперь а === 2. Это постинкремент, он увеличивает переменную и возвращает старое значение.
  8.     if(a++ === 42 && b === 43){ // проверяя условие в if мы еще раз увеличиваем а, и теперь а === 3, условие же не истинно
  9.         console.put('stop loop; '); // т.е. мы "не заходим в иф", а преходим к третьему блоку конструкции for: b++, там
  10.         break;                      // b становится равным 2-ум, и проверка второго блока a !== b + 1 (3 не равно 2 + 1)
  11.     }                               // возвращает false, т.е не истинна и цикл прекращается, программа выводит результаты
  12. }
  13.  
  14. console.put('a = ' + a + "; " ); // 'a = 3' здесь плюсы соединяют строки со значением переменной для вывода в консоль
  15. console.log('b = ' + b);         // 'b = 2'
  16.  
  17. // Ответ вариант B: "a = 3; b = 2"
  18.  
  19. /**
  20.    Как работает цикл for:
  21.    цикл for имеет конструкцию с тремя блоками и телом for(1-инициализация; 2-условие; 3-действия после тела ){тело цикла}
  22.    выполняется в такой последовательности:
  23.        1-инициализация выполняется лишь однажды но самой первой;
  24.        2-условие - проверяется , если false, то цикл завершится, если же true - выполнится тело цикла;
  25.        - тело цикла выполняется здесь;
  26.        3-каждый раз после тела выполнятся действия из третьего блока, после чего переходим к пункту 2
  27.    каждый проход действий из этих пунктов называется итерацией. Все блоки и тело не являются обязательными и могут
  28.    быть упущены: for(;;){} и даже for(;;); являются допустимыми, и будут выполнятся зациклено и без остановки, такие
  29.    циклы называются "вечными циклами", аналог while(true){...}
  30.    Иногда нужны и они.  
  31. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement