powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Цикл for
13 сообщений из 13, страница 1 из 1
Цикл for
    #38933468
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните пож. чайнику-новичку пошаговую работу этого цикла по пунктам:

Код: php
1.
2.
3.
4.
5.
6.
for($i = 2; $i<4; $i++) {
for($j = 2; $j < $i; $j++) {
if( ($i % $j) == 0) {
//некоторый код
}
}



1) я так понимаю будет 2 % 2;
2)??
3)??
ну и т.д....
...
Рейтинг: 0 / 0
Цикл for
    #38933513
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_4ainik_,

Все просто до тупости:
Код: php
1.
2.
3.
4.
1) $i == 2, $j == 2: $j не < $i - выходим из  внутреннего цикла (он не выполнится ни разу);
2) $i == 3, $j == 2: $i % $j == 1 - в if не попадаем;
3) $i == 3, $j == 3: $j не < $i - выходим из  внутреннего цикла;
4) $i == 4 фсе финита ля комедиа - $i не < 4



Соответственно, видимо, не зайдем в твой if ни разу. Доходчиво?
...
Рейтинг: 0 / 0
Цикл for
    #38933530
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

с этим ясно, да..Но вообще я не до конца сформулировал свой вопрос чтобы понять..Напишу по-полному. Вот код, в котором находим простые числа:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$lst = array();
$k = "prostoe";
for($i = 2; $i<5; $i++) {
for($j = 2; $j < $i; $j++) {
if( ($i % $j) == 0) {
$k="ne prostoe";
}
}
if ($k == "prostoe")
$lst[] = $i;
else
$k = "prostoe";
}
foreach ($lst as $list) echo $list."</br>";


И ведь когда мы доходим до $i == 4, $j == 3 , т.е. 4%3, то будет равно 1, то тогда i == 4 - простое число выходит...Как так код работает?
...
Рейтинг: 0 / 0
Цикл for
    #38933565
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_4ainik_,

Нет, вот возьми и подумай еще чуть-чуть. А че - этот код вывел тебе, что 4 - простое??? Или ты не привык доверять интерпретатору?
...
Рейтинг: 0 / 0
Цикл for
    #38933574
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,
интерпретатор показал числа 2 и 3. Четверку он не вывел..Но я не пойму одного - в условии кода написано что выводить те числа, которые при делении с остатком на число не будут равны нулю..а как насчет 4%3 ? Остаток 1. Там же будет итерация при которой i=4 j=3..или нет?
...
Рейтинг: 0 / 0
Цикл for
    #38933599
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_4ainik_,

А вот если бы еще чуть-чуть подумал, то вспомнил бы про итерацию, в которой $i == 4 и $j == 2...
...
Рейтинг: 0 / 0
Цикл for
    #38933668
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,
да, есть такая..а та, что 4%3 потом уже не считается? проход такой?
1) 3%2
2) 4%2
3) 4%3
Результат: 2 и 3 - простые числа
И почему 2 выводится? Ведь 2<2 это false..
...
Рейтинг: 0 / 0
Цикл for
    #38933701
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

вот сейчас единственное не понимаю..так как будет итерация i=4, j=3 и при 4%3=1, то по условию кода должна и 4 выводится=)
...
Рейтинг: 0 / 0
Цикл for
    #38933851
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_4ainik_,

Ну чувак, ну вот ты трудный...
Обрати внимание на значение переменной $k. От нее в твоем коде много чего зависит
...
Рейтинг: 0 / 0
Цикл for
    #38933856
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

это понятно, наверно просто не можешь понять что я хочу спросить..логика кода мне понятна, я не могу разобраться до конца с циклом for... напиши просто, как мы регламентируем эту итерацию, при которой 4%3 ?

Код: php
1.
2.
3.
4.
5.
1)  $i == 2, $j == 2 - условие не выполняется
2)  $i == 3, $j == 2,  3%2 == 1, значит 3 - простое число
3)  4%2 == 0, значит 4 - не простое
4)  $i == 3, $j == 3 - условие не выполняется
5)  4%3 == 1 , но вот тут же остаток получится...а по условию если остаток, то число не простое.
...
Рейтинг: 0 / 0
Цикл for
    #38933904
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чегой-та я не понимаю, откуда взялась итерация при $i равном четырём. По коду из первого поста не должно быть такого.
...
Рейтинг: 0 / 0
Цикл for
    #38933926
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

по коду из 3-его поста.

_4ainik_,

вот когда у тебя i=4, j=2 выполнится вот это условие:
Код: php
1.
2.
3.
if( ($i % $j) == 0 ) {
    $k="ne prostoe";
}


следовательно, на следующей итерации (i=4, j=3) тебе уже без разницы, ты уже значение $k изменил
условие
Код: php
1.
if ($k == "prostoe")


не выполнится и 4 в список простых чисел не попадет.
Я просто в ужасе, что такую элементарщину нужно объяснять. Ты обучающийся что ли? Тогда читай какую-нибудь книжку по алгоритмам для чайников
...
Рейтинг: 0 / 0
Цикл for
    #38935520
_4ainik_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikkiMouse,

спасибо! я понял теперь.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Цикл for
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]