Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2023, 20:12
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

Циклы for с метками
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 (permalink)  
Старый 14.03.2023, 20:12
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

Я написал сам что то подобное, и что тут не так?

let num = 90;
firstFor:
for(i = 16; i<num; i++) {
for (k = 2; k < i; k=+2) {
if(k === 12) break firstFor
}
console.log(i)
}
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2023, 21:39
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от deniscikasov@gmail.com
и что тут не так
А что вы хотели сделать?

Последний раз редактировалось voraa, 14.03.2023 в 21:42.
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2023, 21:41
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от deniscikasov@gmail.com
Объясните пожалуйста принцип действия этого цикла, с другими методами всё ок, но этот труднит
Ну, если i делится на j, значит это не простое число. В этом случае завершаем внутренний цикл и переходим к следующей итерации внешнего цикла.
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2023, 21:45
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

Я хотел создать аналогичный пример
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2023, 21:47
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

i будет делиться на j при каждой итерации?
Ответить с цитированием
  #7 (permalink)  
Старый 14.03.2023, 21:49
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

Допустим:
Если i меньше n и добавляем постоянно по 1 к i
Но мы также к j будем добавлять 1? ведь они идентичны, и, соответственно, будут делиться одинаково? Тоесть 2/2 | 3/3 и т.д и при четных числах будут пропускать полностью цикл? Ведь всегда будет четное число 0.
Короче я хз, если можете - разжуйте для меня. таланта нет, но есть упорство.
Если в первом цикле показывает true - мы переходим к следующему циклу и там показывает true. Значит выполняем continue. Выполняем шаги, где i++ и j++. Будет в обоих переменных по 3 и делиться они будут 3/3

Если вас не затруднит, помогите, я очень на вас рассчитываю, не могу никак понять.
А в примере ниже я хотел что бы цикл остановился на k = 12, но в консоле не было сложения - ничего не показало

Последний раз редактировалось deniscikasov@gmail.com, 14.03.2023 в 22:05.
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2023, 06:39
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Сообщение от deniscikasov@gmail.com
Выполняем шаги, где i++ и j++. Будет в обоих переменных по 3 и делиться они будут 3/3
Нет. При второй итерации внешнего цикла i будет равно 3, а вот внутренний цикл начинается сначала, а значит j = 2.
3 % 2 не равно 0.
Далее - во внутреннем цикле стоит условие: j < i, значит этот цикл завершится на j равным двум, и далее исполнится алерт.
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2023, 07:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

Сообщение от deniscikasov@gmail.com Посмотреть сообщение
и что тут не так?
k=+2
->
k+=2
__________________
29375, 35
Ответить с цитированием
  #10 (permalink)  
Старый 15.03.2023, 18:08
Аватар для deniscikasov@gmail.com
Аспирант
Отправить личное сообщение для deniscikasov@gmail.com Посмотреть профиль Найти все сообщения от deniscikasov@gmail.com
 
Регистрация: 14.03.2023
Сообщений: 77

Белый шум,
Спасибо, но еще кое что хочу спросить.
Вот i % j == 0. Что это значит? Если там будет написано !== 0.
Это четное/нечетное число?
Где при ==0 - четное - пропускаем итерацию и по новому кругу, где внешний цикл == 4 и внутренний 3?
и при !==0 - нечетное - спускаемся на alert
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трагедия новичка: вынос переменных за циклы изменяет работу программы. logicaface Общие вопросы Javascript 20 18.11.2022 14:10
Как вычислить среднее значение между двумя временными метками okuznetsov1 Общие вопросы Javascript 11 15.04.2017 16:28
Яндекс Карты с метками vasyakrn Элементы интерфейса 0 21.06.2015 20:28
почему вместо методов Array используют циклы finestra Общие вопросы Javascript 29 03.02.2014 10:25