Начал изучать JavaScript по учебнику
https://learn.javascript.ru
попалась такая задача :
Натуральное число, большее 1, называется простым, если оно ни на что не делится, кроме себя и 1.
Другими словами, n>1 – простое, если при делении на любое число от 2 до n-1 есть остаток.
Создайте код, который выводит все простые числа из интервала от 2 до 10. Результат должен быть: 2,3,5,7.
P.S. Код также должен легко модифицироваться для любых других интервалов.
Дано такое решение:
nextPrime:
for (var i = 2; i < 10; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) continue nextPrime;
}
alert( i ); // простое
Помогите понять как он работает. Я попробовал разобрать все по действиям и в итоге у меня получилось то что вообще все числа от 2 - 10 должны выводится))) но так не происходит. Подскажите где я ошибся и что не правильно понял.
Как я рассуждал:
1) Запускается внешний цикл
а)первая итерация: i = 2, выполняется условие i < 10
б)далее залезаем во внутренний цикл. первая итерация во внутреннем цикле: j = 2, условие j < i (2 < 2) не выполняется.
в)выходим из внутреннего цикла в выполняем действие j++ == (3)
г)выполняем alert(2)
д)выполняем действие i++ == (3)
2)Запускаем вторую итерацию внешнего цикла:
а) i = 3, выполняется условие i < 10
б) далее залезаем во внутренний цикл. первая итерация во внутреннем цикле: j = 3, условие j < i (3 < 3) не выполняется.
в)выходим из внутреннего цикла в выполняем действие j++ == (4)
г)выполняем alert(3)
д)выполняем действие i++ == (4)
3) Запускаем третью итерацию внешнего цикла:
а) i = 4, выполняется условие i < 10
б) далее залезаем во внутренний цикл.
первая итерация во внутреннем цикле: j = 4, условие j < i (4 < 4) не выполняется.
в)выходим из внутреннего цикла в выполняем действие j++ == (5)
г)выполняем alert(4)....(хотя она не выводится=)))
И так далее))) по моему расчету условие if вообще ни когда не срабатывает, что не так я понял в работе циклов объясните, щас сума сойду)