|
Модераторы: Sardar, Aliance |
|
denisalekss |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 7.12.2020 Репутация: нет Всего: нет |
Есть задача:
Вот решение задачи вложенным циклом FOR
Правильно я понимаю? Речь про строку if (i % j == 0) continue nextPrime; За первой итерацией будет проверяться остаток от деления 3/2? i до того как дойдет до второго внутреннего for из-за i++ станет 3, хотя он стартовал с 2 и затем будет в If проверяться остаток от деления 3/2 (три на два за первым прогоном цикла)? Это сообщение отредактировал(а) denisalekss - 17.12.2020, 00:09 |
||||
|
|||||
bars80080 |
|
|||
прапор творюет Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
|
|||
|
||||
denisalekss |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 7.12.2020 Репутация: нет Всего: нет |
Натуральное число, большее 1, называется простым,
если оно ни на что не делится, кроме себя и 1. Как я понял, например если взять число 4, оно не простое, оно делится и на себя и на 1 и на четное 2. Теперь если глянуть на код как он работает. 1-ая итерация цикла: Идет проверка на остаток числа 3/2= есть остаток от деления. Алерт должен вывести 3 а не 2, но почему вывод вначале двйоки произошел? Ведь i = 3 за первым прогоном после i++ он стал 3 2-ая итерация цикла: Метка перешла на начало цикла и пошла проверка 4/3? Объясните, как происходит первая и вторая итерация в этом коде цифрами, что на что делится и как выводится очередность? Я модернизировал код с кнопкой, для удобности, но как происходит проверка при итерациях не понял.
Это сообщение отредактировал(а) denisalekss - 17.12.2020, 20:39 |
|||
|
||||
denisalekss |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 7.12.2020 Репутация: нет Всего: нет |
Вроде разобрался, гляньте, правильно ли я понял?
[code=javascript] 1. В самом начале во Внутренним цикле for идет сравнение 2<2? (i=2, j=2) нет 2 не меньше двух, Внутренний цикл for не выполняется, так как условие ложь и идёт переход со внутреннего во внешний цикл for где выполняется инструкция с выводом document.write(i+"<br>"); Выводим в конечный результат Первую цифру 2 на экран. <--------------------------------------------------------------------------------------------------> 2. i увеличивается на один во внешнем цикле for, i =3, Далее во внутреннем цикле for идёт сравнение 2<3? (j=2, i=3) Да, 2 меньше трех и выполняется условие if Во внутреннем цикле. 3/2 дает остаток 0? Нет, не дает, Идёт возврат снова во внутренний цикл где (j=3, i=3), 3<3? Нет, не меньше, Внутренний Цикл for не выполняется Идёт переход во внешний цикл For в котором выполняется инструкция document.write(i+"<br>"); Выводим в конечный результат цифру 3 на экран. <--------------------------------------------------------------------------------------------------> 3.i увеличивается на один во внешнем цикле for, i =4, Далее во внутреннем цикле for идёт сравнение 2<4? (j=2, i=4) Да, 2 меньше 4 и выполняется условие if Во внутреннем цикле. 4/2 дает остаток 0 -это истинна и идет переход к метке nextPrimе. Запускается внешний цикл снова, увеличивается i на один во внешнем цикле for и i =5. Далее во внутреннем цикле for идёт сравнение 2<5? (j=2, i=5), Да, меньше, выполняем if во внутреннем цикле, if дает ложь. Идёт переход снова во внутренний цикл for, j увеличивается на 1 (j=3, i=5). 3<5? Да, снова выполняется условие if, 5/3 дает ложь, идет снова возврат во внутренний цикл for, (j=4, i=5), Выполняется снова if, 5/4 дает ложь, снова возврат во внутренний цикл (j=5, i=5) 5<5, Нет не меньше идёт переход во внешний цикл for где выводится через document.write(i+"<br>"); результат на экран Имеем уже на данный момент 2,3, 5 на выводе. <--------------------------------------------------------------------------------------------------> 4. i увеличивается на один во внешнем цикле for, i =6, Далее во внутреннем цикле for идёт сравнение 2<6? (j=2, i=6) Да, 2 меньше 6 и выполняется условие if Во внутреннем цикле. 6/2 дает остаток 0, идете переход к метке. Снова запускается внешний цикл for, уже i=7. Во внутреннем цикле for Идёт сравнение 2<7, да. Условие иф дает ложь при 7/2, происходит возврат во внутренний цикл for (j=3, i=7) Условие иф дает ложь при 7/3, происходит возврат во внутренний цикл for (j=4, i=7) Условие иф дает ложь при 7/4, происходит возврат во внутренний цикл for (j=5, i=7) , Условие иф дает ложь при 7/5, происходит возврат во внутренний цикл for (j=6, i=7) Условие иф дает ложь при 7/6, происходит возврат во внутренний цикл for (j=7, i=7). 7<7? Нет, Идет переход во внешний цикл for в котором document.write выводит на экран цифру семь. <--------------------------------------------------------------------------------------------------> [/JS] Это сообщение отредактировал(а) denisalekss - 18.12.2020, 21:11 |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |