T
typak
Тут неделю как пхп учу дошол до циклов все более менее понятно а от одна програмка никак немогу разобрать ка она работает.
ПРОГРАММА ДЛЯ НАХОЖДЕНИЯ ПРОСТЫХ ЧИСЕЛ
КОД ПРОГРАММЫ:
В результате выводит:
Программа нахождения простых чисел
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Все работает правильно так как и должно без ошибок тока как? :mellow:
Щас будем разбиратся:
круг 1:
i =2 i<100 да //выполняетса подцикл
j = 2 j<i нет // выход с цыкла переход к третей части
if !0 -> true вивод i=2 // с первой двойкой понятно вроде
круг 2: // i = 3, а j=2 неизменилось так как вроде условие внутреннего цикла невыполнилось
i = 3 i<100 да // переходим к подциклу к оператору 1
j = 2 j<i да // переходим к первому оператору подцикла
if (3%2 !=0)-> TRUE->continue// конец текущей итерации подцикла начало новой j прибавило 1 j=3
j = 3 j<i = 3 < 3 -> false // выход из подцикла-переход к следующему оператору ко второму оператору внешнего цикла
if !0 -> true вивод i=3 // Вывелась вроде тройка
ИДЕМ ДАЛЬШЕ ЩАС ОШИБКА нифакт шо ее раньше небыло
круг 3: // i стало 4, J = 3
i= 4 i<100 да // переход к подциклу (оператору 1)
j=3 j<i да //переход к первому оператору подцикла
if (4%3 !=0)-> TRUE->continue// конец текущей итерации подцикла начало новой j прибавило 1 j=4
j = 4 j<i = 3 < 3 -> false // выход из подцикла-переход к следующему оператору ко второму оператору внешнего цикла
if !0 -> true вивод i=4 // Вывелась вроде четверка
так от по моим рассуждением получаетса что оно выведет все цифры подряд 1 2 3 4 5 ... 100
НАСАМОМ ЖЕ ДЕЛЕ АНА ВЫВОДИТ СЛЕДУЩИЕ ЦИФРЫ:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
код програмы правельный все работает правильно тока я немогу догнать как она так выводит. кто шарит мож опишет или намикнет где я ошибся
ВЫШКА У МЕНЯ ПЯТИФАН БЫЛА НАМИКНИТЕ РАЗБЕРУСЬ
ПРОГРАММА ДЛЯ НАХОЖДЕНИЯ ПРОСТЫХ ЧИСЕЛ
КОД ПРОГРАММЫ:
Код:
<?php
echo "<h1>Программа нахождения простых чисел</h1><p>";
$flag = NULL;
for ($i = 2; $i < 100; $i++)
{
for ($j = 2; $j < $i; $j++)
{
if (($i%$j) !=0 ) continue;
else
{
$flag = true;
break;
}
}
if (!$flag) echo $i." ";
$flag = false;
}
?>
В результате выводит:
Программа нахождения простых чисел
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Все работает правильно так как и должно без ошибок тока как? :mellow:
Щас будем разбиратся:
круг 1:
i =2 i<100 да //выполняетса подцикл
j = 2 j<i нет // выход с цыкла переход к третей части
if !0 -> true вивод i=2 // с первой двойкой понятно вроде
круг 2: // i = 3, а j=2 неизменилось так как вроде условие внутреннего цикла невыполнилось
i = 3 i<100 да // переходим к подциклу к оператору 1
j = 2 j<i да // переходим к первому оператору подцикла
if (3%2 !=0)-> TRUE->continue// конец текущей итерации подцикла начало новой j прибавило 1 j=3
j = 3 j<i = 3 < 3 -> false // выход из подцикла-переход к следующему оператору ко второму оператору внешнего цикла
if !0 -> true вивод i=3 // Вывелась вроде тройка
ИДЕМ ДАЛЬШЕ ЩАС ОШИБКА нифакт шо ее раньше небыло
круг 3: // i стало 4, J = 3
i= 4 i<100 да // переход к подциклу (оператору 1)
j=3 j<i да //переход к первому оператору подцикла
if (4%3 !=0)-> TRUE->continue// конец текущей итерации подцикла начало новой j прибавило 1 j=4
j = 4 j<i = 3 < 3 -> false // выход из подцикла-переход к следующему оператору ко второму оператору внешнего цикла
if !0 -> true вивод i=4 // Вывелась вроде четверка
так от по моим рассуждением получаетса что оно выведет все цифры подряд 1 2 3 4 5 ... 100
НАСАМОМ ЖЕ ДЕЛЕ АНА ВЫВОДИТ СЛЕДУЩИЕ ЦИФРЫ:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
код програмы правельный все работает правильно тока я немогу догнать как она так выводит. кто шарит мож опишет или намикнет где я ошибся
ВЫШКА У МЕНЯ ПЯТИФАН БЫЛА НАМИКНИТЕ РАЗБЕРУСЬ