Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 4 / 5
Регистрация: 17.09.2015
Сообщений: 194

Объясните, как это работает, пожалуйста

10.02.2022, 15:43. Показов 622. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
6
7
8
9
10
11
let n = 10;
 
nextPrime:
for (let i = 2; i <= n; i++) { // Для всех i...
 
  for (let j = 2; j < i; j++) { // проверить, делится ли число..
    if (i % j == 0) continue nextPrime; // не подходит, берём следующее
  }
 
  alert( i ); // простое число
}

Как работает этот код?
В каком порядке какие действия выполняются? Объясните, пожалуйста.
Спасибо!

Добавлено через 2 минуты
Мне непонятно, почему этот код выводит 2, если остаток от деления 2 на равен 2..
А по условию там, где остаток от деления равен 0 выводится не должен.

Добавлено через 4 минуты
Правильно я понимаю, что первый цикл - это 2/2 = 0, где 0 - остаток от деления.
Затем 3/2 = 1, где 1 - остаток от деления.
Затем 4/3, остаток от деления 1.


И т.д.

Почему тогда код 4 не выводит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2022, 15:43
Ответы с готовыми решениями:

Объясните, как это работает?
Здравствуйте! Есть код $(document).ready(function() { $(&quot;#btnExport&quot;).click(function(e) { e.preventDefault(); ...

Объясните пожалуйста, это значит ?
getPropertyValue('font-size') - это устанавливает размер window.getComputedStyle(txt, null) - Что это style =...

Объясните пожалуйста как это работает
s = input().split() n = 0 for i in range(len(s)):     if s.isdigit():         n += int(s) print(n)

6
82 / 21 / 18
Регистрация: 25.06.2015
Сообщений: 73
10.02.2022, 18:32
Затем 4/3, остаток от деления 1.
И т.д.
Почему тогда код 4 не выводит?

4 сначала делится на 2, то есть i = 4 и попадает во внутренний цикл, там j = 2 вначале цикла, получается 4 на 2, остаток 0 и число не выводится, сразу выполняется continue nextPrime - переход к метке. Потом i =5 и попадает во внутренний цикл, там j = 2, 5 на 3 делится с остатком, j растет на 1, 5 на 4 и так далее
0
1 / 4 / 5
Регистрация: 17.09.2015
Сообщений: 194
10.02.2022, 19:03  [ТС]
Bargundos, а почему делитель(тот, что "j = 2") не увеличивается при каждом цикле? А делимое ("i = 2") при каждом цикле возрастает...
Это какое-то правило, которое я не знаю?

Ведь для обоих задано i++ и j++

Добавлено через 5 минут
Или это аксиома?) Я пока это вижу, как аксиому, т.к. в коде нигде не обозначено, почему внутренний цикл(переменная j) каждую новую итерацию обнуляется до значения по умолчанию(j = 2)

Добавлено через 24 секунды
Логикой хочу все это связать, иначе не до конца понятно, как работает...

Добавлено через 22 секунды
Или это просто надо запомнить? Как правило

Добавлено через 3 минуты
А, вроде бы начал понимать
0
82 / 21 / 18
Регистрация: 25.06.2015
Сообщений: 73
10.02.2022, 19:06
Ну смотрите, допустим i = 4 и все, оно это i застывает и идет во внутренний цикл, там уже для этого i = 4 применятся сначала j =2, срабатывает условие (i % j == 0) и оно не выводится и переходит к метке nextPrime. Смысла нету проверять i =4 и j =3, это уже не простое число. Потом i = 5 и снова застывает, начинает работать внутренний цикл, там уже для этого застывшего i = 5, проверяется каждое j от 2 до (j < i), до 4 то есть, делим 5 на 2, тут остаток есть, потом 5 на 3, тоже есть остаток, 5 на 4 и тут есть, условие (i % j == 0) не выполнилось и это число выводим как простое. Попробуйте на дебаггере точки останова поставить и посмотреть как меняются переменные learn.javascript.ru/debugging-chrome

Добавлено через 2 минуты
Начинаются циклы с двойки и внешний и внутренний, тут очень просто все чтобы понять, почитайте про циклы получше как они работают, воспользуйтесь дебаггером чтобы посмотреть как переменные меняются
0
1 / 4 / 5
Регистрация: 17.09.2015
Сообщений: 194
10.02.2022, 19:12  [ТС]
Bargundos, вроде понял логику, но как-то некоторые вещи кажется, что надо просто запомнить. Что, например, после каждого удачного цикла(при выводе значения переменной на экран) или серии циклов, и затем после и каждого неудачного(при i % j == 0) внешняя переменная возрастает, а внутренняя становится снова 2 и возрастает только при удачной итерации(когда i % j !== 0)
0
82 / 21 / 18
Регистрация: 25.06.2015
Сообщений: 73
10.02.2022, 19:18
Да, все верно вы поняли сейчас

Добавлено через 32 секунды
Тут запоминать не надо, просто надо логику понять и все
0
1 / 4 / 5
Регистрация: 17.09.2015
Сообщений: 194
10.02.2022, 19:22  [ТС]
Bargundos, имел в виду запомнить выше написанное правило =)
В коде самом же не обозначено никак, чтобы переменная во внутреннем цикле обнулялась(при условиях описанных выше).
Так понимаю это особенность языка, типа правила или аксиомы. Просто запомнить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2022, 19:22
Помогаю со студенческими работами здесь

Объясните пожалуйста как это работает
domains el=integer* /* список целых чисел */ list=el* /* список из списков чисел */ predicates nondeterm...

Объясните пожалуйста, как работает это приложение
Когда я писал свой шифратор, мне предложили взять за основу этот шифратор с паролем, ничего не объяснили как он работает, и так и не смог в...

Строки: объясните пожалуйста, как это работает
помогите Разобраться в функции. Она форматирует строку по ширине. удаляет лишние пробелы. #include &lt;stdio.h&gt; #include...

Объясните как работает это программа, по строчно! Пожалуйста C++
Объясните пожалуйста программу построчно. Заранее спасибо

Объясните, пожалуйста, как это работает, и может есть вариант попроще?
Объясните пожалуйста как это работает и может есть вариант по проще? &lt;form action=&quot;&quot; method=&quot;post&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru