Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Циклы for с метками (https://javascript.ru/forum/misc/85040-cikly-s-metkami.html)

deniscikasov@gmail.com 15.03.2023 18:48

Спасибо

Белый шум 15.03.2023 19:53

Цитата:

Сообщение от deniscikasov@gmail.com
Вот i % j == 0. Что это значит?

Результатом операции i % j является остаток от деления i на j.
3 % 2 - будет один. 9 % 3 - будет ноль.
Затем этот результат сравнивается с нулём: == 0

Логика простая: если нашёлся хоть один делитель (j) для текущего делимого (i), при котором результат - ноль, то это число не является простым, а значит мы его пропускаем и идём проверять следующее.
Если же внутренний цикл полностью отработал, значит делителя не нашлось, а значит данное число является простым.

deniscikasov@gmail.com 16.03.2023 09:35

Спасибо, я всё понял.
Если будут ещё вопросы - я знаю к кому обратиться.
Спасибо большое, никак не мог понять принцип работы.

deniscikasov@gmail.com 16.03.2023 09:46

Заключительный вопрос.
Во внутреннем цикле j всегда начинается с 2? Или при ==0 мы запускаем цикл по новому, где, допустим, I == 4, а внутренний цикл уже 3? Или он также начинается с 2, и мы будем повторять цикл до тех пор, пока внешний цикл/ внутренний цикл не покажет ==1
Просто в предыдущем ответе вы сказали, что внутренний цикл начинается сначала и будет ==2, где внешний уже 3.

Надеюсь понятно описал вопрос

deniscikasov@gmail.com 16.03.2023 11:19

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 ); // простое число

Вот как я это понимаю: просто скажите где не так и мне будет достаточно
Если I <= n то мы переходим вниз к другому циклу
В нём j < I - это false и он завершается
Переходим опять наверх, где I++
Итого i ==3 и j == 2
Далее j < I - true
Мы делаем (i%j) и если получается == 1, то мы переходим к алерт
Если i% j покажет в каком то случае 0, то цикл вернётся вначало и добавит по 1 к каждой переменной

Сижу на работе просто, с телефона неудобно, так бы перелопатил все полученные знания, но пока так. Если я туплю - не обижайтесь, я не специально

Белый шум 16.03.2023 12:54

Цитата:

Сообщение от deniscikasov@gmail.com
Во внутреннем цикле j всегда начинается с 2?

Да.

Подробнее тут - https://learn.javascript.ru/while-for#tsikl-for

deniscikasov@gmail.com 16.03.2023 13:55

Я вам очень благодарен. Вы единственный, кто действительно помог мне. Конечно на других форумах я тоже спрашивал, но палец вверх я ставлю вам


Часовой пояс GMT +3, время: 15:39.