Понимаю как нелепо может выглядеть этот вопрос,и как криво я описал проблему,но я новичок в этом деле,так что сорре
Учу сейчас JS на learn.javascript.ru,дошел до раздела функции.Там можно встретить такой вот алгоритм:
function showPrimes(n) {
nextPrime: for (let i = 2; i < n; i++) {
for (let j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert( i ); // простое
}
}
showPrimes(10);
Не понимаю как оно работает,пробовал уже и на бумажке смотреть.Функция собственно выводит простые числа от 2 до n.Вот как по мне должна работать функция:
Вызываем функцию showPrimes()
со значением 10
>>
Изначально i
во внешнем цикле,и j
во внутреннем равны 2,так что внутренний цикл не срабатывает и выводится 2 (alert(i))
>>
Переходим на следующую итерацию внешнего цикла,i
становиться 3 >>
Срабатывает внутренний for
,идет проверка на остаток деления >>
Т.к остаток от деления 3 на 2 не является 0,continue
не срабатывает>>
теперь уже внутренний цикл начинает новую итерацию,j
становится 3,i
у нас также остается 3 значит цикл не срабатывает и alert выводит 3 >>
i = 4 j = 3
,внутренний цикл срабатывает,остаток не равен 0 значит переходим на след.итерацию j
становиться 4,а значит внутренний цикл не запускается и выводится 4,но 4 выводится не должно(да и не выводится,программа работает корректно,просто я не правильно все понимаю скорее всего) Так где же я не прав?
Т.к. во внутреннем цикле условие j < i
, то j
никогда не будет равно i
и комбинация 4%4
попросту не вычисляется, а начинается следующая итерация внешнего цикла с i = 5.
При каждом новом j внутренний цикл стартует заново (с 2), поэтому проверка 4 (и вообще всех четных чисел) заканчивается уже на 2, так как 4%2 равняется 0.
Пропустив этот момент я продолжил изучать учебник дальше,дошел до изучения отладчика и воспользовался им,дело в том что j
во внутреннем цикле постоянно сбрасывает свое значение к двум при каждой итерации внешнего цикла.Короче совет таким же бубунам как и я,используйте отладчик:)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Эта функция вызывается по нажатию на кнопку:
В расширении Google Chrome, установлено событие, которое отслеживает загрузку определенной страницы сайта exemplecom:
Какую функцию выполняет func(), то есть в чем смысл использования этой функции там
Вот у меня есть задание, знаю что легче через структуру FILE, но задание - сделать с fstreamЗаписываем информацию про студентов: имя, группа, оценки...