Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пример из учебника на сайте (https://javascript.ru/forum/misc/32124-primer-iz-uchebnika-na-sajjte.html)

jekahm 04.10.2012 11:13

Пример из учебника на сайте
 
Товарищи специалисты, обьясните, пожалуйста, как работает пример из учебника на сайте? Никак не могу разобраться! Вот ссылка на сам пример: http://learn.javascript.ru/task/vyvesti-prostye-chisla

Как я понимаю, сначала в первом цикле i=2, дальше идём во второй цикл, там j=2, сравнение 2<2 не срабатывает и выводится значение і=2. Потом следующая итерация: i=3, j=2, 2<3, 3 не делится нацело на 2 - и поэтому увеличиваем j на еденицу (j=3). Снова сравнение 3<3 не срабатывает и выводится i=3. Но если следовать данной логике, то дальше выведутся числа 4, 5 и т.д.! А этого происходить не должно! В чем же проблема?

eirnvn 04.10.2012 11:45

Механика такая: в первом цикле мы перебираем числа в заданном интервале (от 2-10), во втором цикле мы делаем проверку делятся ли числа из первого цикла на числа из второго, если число из первого цикла делится без остатка, то оно второй раз не проверяется (уже не простое) -> continue; Берется следующее число в первом цикле и т.д.

jekahm 04.10.2012 12:31

Цитата:

Сообщение от eirnvn (Сообщение 208121)
Механика такая: в первом цикле мы перебираем числа в заданном интервале (от 2-10), во втором цикле мы делаем проверку делятся ли числа из первого цикла на числа из второго, если число из первого цикла делится без остатка, то оно второй раз не проверяется (уже не простое) -> continue; Берется следующее число в первом цикле и т.д.

Общую схему процесса я то понял! Не могу понять именно то, почему выводятся только числа 2,3,5,7.
Во внутреннем цикле, если условие ложное, то мы снова проходим по данному циклу и ничего не выводится, правильно?

eirnvn 04.10.2012 13:13

Правильно) Оно и не должно выводить, выводится в другом цикле, когда через фильтр (внутренний цикл) пройдет.

jekahm 04.10.2012 13:33

Цитата:

Сообщение от eirnvn (Сообщение 208138)
Правильно) Оно и не должно выводить, выводится в другом цикле, когда через фильтр (внутренний цикл) пройдет.

Спасибо за помощь! Уже со всем разобрался! :)


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