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

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

10.02.2022, 15:43. Показов 611. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru