Чат Telegram
Группа ВКонтакте
Новый комментарий


SBTesla 01.10.2017 в 10:28
<?php

$num = 344;
while ($num <= 357) {
    if ($num % 2 == 0) {
        $arr[] = $num;
    }
    $num++;
}

foreach ($arr as $key => $value) {
    echo $value;
    echo "<br>";
}
<?php
/*Выводим все сотые  числа*/
$num = 0;
while ($num < 1000) {
    if ($num) {
        $arr[] = $num;
    }
    $num+= 100;
}

foreach ($arr as $key => $value) {
    echo $value;
    echo "<br>";
}
ivashkevich 01.10.2017 в 11:00
  1. Если входные условия поменяются, и нужно будет найти все чётные числа от 344, то число 344 будет пропущено, а проверяться сразу будет 345. Аналогично с верхней границей, если было бы 358, то оно тоже было бы пропущено. Переделайте алгоритм так, чтобы граничные значения тоже учитывались.
  2. Так неправильно:
    if ($i % 2) { } 
    else { $arr[] = $i;}

    Правильно вот так:

    if ($i % 2 === 0) {
        $arr[] = $i;
    }

    Во-первых, ни в коем случае не должно быть пустых блоков. Можно инвертировать условия с помощью логического НЕ (оператор !). То есть не писать:

    if ($x) {
        //это мне ни к чему
    } else {
        //а вот здесь я что-то сделаю
    }

    А писать:

    if (!$x) {
        //здесь я что-то сделаю
    }

    Здесь вы посмотрели, что если $i делится на 2 с остатком (остаток - 1, будет преобразовано в true), то это не то что вам нужно. И добавили else и его уже обработали.
    Хотя можно было сделать просто подходящее условие - если остаток от деления на 2 равен 0.

  3. Блоки if всегда нужно писать в виде:
    if (условие) {
        //то
    }

    Никаких в одну строку и прочих лишних переносов.

  4. Один отступ всегда должен быть равен четырем пробелам. А у вас echo пляшут как хотят. Используйте автоформатирование в PHPStorm - одновременное нажатие CTRL+ALT+L

Поправьте эти небольшие недочёты и попробуйте снова.

alex.evg.ostr 22.02.2019 в 12:43

В 1. Нет, 344 также попадет под условия и будет внесено в массив. Также, если у величить сравнение с 358, то значение 358 тоже будет внесено и выведено.

trialex3 02.10.2017 в 21:20
<?php
$arr = [];
$x = 345;
while ($x <= 357) {
    if ($x % 2 == 0) {
        $arr[] = $x;
    }
    $x++;
}

foreach ($arr as $value) {
    echo $value . ', ';
}
?>
ivashkevich 03.10.2017 в 18:13

Всё верно, образцовая работа.

Watcher 08.10.2017 в 15:24

$arr = [];
можно опустить
тоже работает )))

ivashkevich 10.10.2017 в 19:05

Можно, но лучше писать, так более очевидно.

WarLikeLaux 10.11.2017 в 17:44

https://pp.userapi.com/c824504/v824504838/1c106/WB8KDf9xzn0.jpg

ivashkevich 10.11.2017 в 17:49

Всё хорошо, но код лучше оформлять текстом, как я вам и говорил. С помощью markdown-разметки:
```
код
```

Закрывающий тег ?> в конце не нужен.

serb2017 15.11.2017 в 12:24
<?php

$i = 346;
$i1 = 357;

if ($i % 2 !== 0) {$i=$i+1;}

while ($i <= $i1) {
    $array1 [] = $i;
    $i = $i + 2;
    }

foreach ($array1 as $i) {
    echo $i;
    echo '<br>';
};
ivashkevich 18.11.2017 в 13:49

У вас всё хорошо и с логикой и с алгоритмами. Есть только небольшая проблема со стилем кода и названиями переменных. То что находится внутри фигурных скобок нужно выносить на отдельные строки. Вот так:

if (условие) {
    действие
}

Переменную $i лучше назвать $from. $i1 лучше назвать $to.
При добавлении новых элементов в массив в конструкции между именем массива и квадратными скобками не должно быть пробелов. Вот так:

$arr[] = 123;

Позже напишу отдельную статью по этой теме. И еще раз - с задачей вы справились на все 100%. Кодстайл - это уже профессиональный уровень, но будет хорошо если вы уже сейчас начнете писать следуя этим правилам. Это даст вам преимущество.

serb2017 18.11.2017 в 15:18

Благодарю Вас за совет. Действительно, нужно быть внимательным к "мелочам", особенно в жизни !

1nSide 07.04.2018 в 15:37

Не получилось в одной строке ваил условия написать для вывода(

$i = 345;
$array = [];

while ($i <= 357)
{
    if($i%2==0){
        $array[] = $i;
    }
    $i++;
}

foreach ($array as $value)
{
    echo $value . '  ';
}
ivashkevich 07.04.2018 в 17:58

А их и не надо в одну строку писать, тут всё правильно и понятно :)

1nSide 07.04.2018 в 16:09

Ну или так, так вроде еще никто не делал)

$i = 345;
$array = [];

while ($i <= 357)
{
        $array[] = $i;
        $i++;
}

foreach ($array as $value)
{
    if($value%2==0)
    {
        echo $value . '  ';
    }
}
ivashkevich 07.04.2018 в 17:52

Не соответствует заданию, так как массив должен содержать только чётные числа

1nSide 07.04.2018 в 16:18

Еще так можно

$i = 345;
$array = [];

do
{
    if($i%2==0)
    {
    $array[] = $i;
    $i++;
    }
} while ($i <= 357);

foreach ($array as $value)
{
        echo $value . '  ';
}
ivashkevich 07.04.2018 в 17:59

А здесь у вас бесконечный цикл, вы хоть проверяйте, что оно работает.

1nSide 08.04.2018 в 09:53

Теперь работает))

$i = 345;
$array = [];

do
{
    if($i%2==0)
    {
    $array[] = $i;
    }
    $i++;
} while ($i <= 357);

foreach ($array as $value)
{
        echo $value . '  ';
}
ivashkevich 08.04.2018 в 17:46

Другое дело! :)

SlipKnot 06.07.2018 в 11:51
<?php

$x = 345;
while ($x < 357) {
    if ($x % 2 == 0) {
        $array[] = $x;
        }
     $x ++;
}

foreach ($array as $key)
{
    echo $key . "<br>";
}
ivashkevich 06.07.2018 в 18:22

Тут всё гуд) Потенциально может возникнуть ошибка, если вместо 357 мы захотим установить границу 358. Более надежным и универсальным условием будет меньше либо равно:

while ($x <= 357) {
SlipKnot 09.07.2018 в 04:46
<?php
$x = 345;
while ($x <= 357) {
    if ($x % 2 == 0) {
        $array [] = $x;
    }
    $x ++;
}
foreach ($array as $item) {
    echo $item . '<br>';
}
ivashkevich 09.07.2018 в 15:58

Отлично =)

Fox-24 13.08.2018 в 15:32

Спасибо за урок!

<?php

$startnum = 345; 
$endnum = 357;
$array = [];

while ($endnum != $startnum) {
    $res = $endnum % 2;
    --$endnum;

    if ($res != 0) {
        $array[] = $endnum;
    }
}

foreach ($array as $value) {
    echo $value . '</br>';
}
ivashkevich 13.08.2018 в 15:38

ААА, ты куда так разогнался, я не успеваю проверять=)

Хорошо, но можно чуть упростить:

while ($endnum != $startnum) {
    if ($endnum % 2 !== 0) {
        $array[] = $endnum;
    }
    $endnum--;
}

То есть не зачем создавать переменную $res - можно сразу проверять.

Fox-24 13.08.2018 в 15:42

Да, прет меня от уроков с этого сайта xD

ААА, ты куда так разогнался, я не успеваю проверять=)

Согласен, был такой вариант, пробовал, но что-то пошло не так, видимо была синтаксическая ошибка. Спасибо:)

ArtemijeKA 06.09.2018 в 17:38

1.

$a = 345;
$arr = [];
while ($a <= 357) {
    if ($a % 2 == 0) {
        $arr[] = $a;
    }
    $a++;
}
foreach ($arr as $val) {
    echo $val . '<br />';
}
ivashkevich 07.09.2018 в 08:52

Отлично!

virtual2018 20.11.2018 в 17:10
<?php
$currentNumber = 345;
$array = [];
while ($currentNumber <= 357) {
    if (!($currentNumber % 2)) {
        $array[] = $currentNumber++;
    }
    $currentNumber++;
}
foreach ($array as $index)
    echo '<br>' . $index;
ivashkevich 20.11.2018 в 23:48
if (!($currentNumber % 2)) {

тут не сразу понятно что ожидается, лучше сравнивать с нулём - так будет более явно.

Для тела цикла и условий всегда используйте фигурные скобки, даже если там одна строка. В PHP это стандарт.

Mike 27.11.2018 в 18:00

Спасибо за урок, весьма понятно и доходчиво, отличный проект!

<?php
$x=0;
$massiv = [];
while ($x < 359){
    $x++;
    if ($x > 350 && $x % 2 == 0) {
         $massiv[]=$x;
    }
}

foreach ($massiv as $num) {
    echo $num . '<br>';
}
ivashkevich 28.11.2018 в 22:32

Можно начинать не с нуля, а с 345. И непонятно, почему здесь 350, а не 345.

XXX 07.01.2019 в 15:51
<?php

$i=345;
$mas=[];
while($i<=357){
    if($i%2==0){
        $mas[]=$i;
        $i++;
    }
    else $i++;
}

foreach($mas as $value){
    echo $value.'<br>';
}
ivashkevich 07.01.2019 в 15:59

$i++ не зависит от условия, можно просто в конце каждой итерации делать.

Для блоков if и else всегда используйте фигурные скобки, даже если там одна строка.

XXX 07.01.2019 в 15:52

После изменение значения max_execution_time с 180 на 1 сервер так же продолжает выполнение кода с бесконечных единичек, а не завершает работу скрипта через 1 секунду. В чем проблема? Или я не так что-то понял?

ivashkevich 07.01.2019 в 16:00

Попробуйте добавить в цикле паузы в 100 мс и посмотрите на разницу.

Invisible 13.01.2019 в 17:27

У меня аналогичная ситуация. Как добавить паузы в цикле? В уроке об этом ничего не сказано.

ivashkevich 13.01.2019 в 18:46

А погуглить? Просто как сделать паузу в PHP.

SashkoUkraine 21.01.2019 в 11:55
<?php

$startNumber = 345;
$endNumber = 357;
$oddNumber = [];

while($startNumber <= $endNumber) {
    if($startNumber % 2 === 0) {
        $oddNumber[] = $startNumber;
    }
    $startNumber += 1;
}

foreach ($oddNumber as $number) {
    echo "--" . $number . "<br>";
}
ivashkevich 21.01.2019 в 21:16

Ок.

Вместо

$startNumber += 1;

лучше использовать

$startNumber++;
Bugaga159 24.01.2019 в 23:17
$x = 345;
$y = 357;
$arrs = function(int $start, int $stop){
    $arrResult = [];
    while ($start <= $stop) {
        if($start%2 == 0) {
            $arrResult[] = $start;
        }
        $start++;
    }
    return $arrResult;
};
foreach ($arrs($x, $y) as $key => $arr) {
    echo $key+1 . ' - ' . $arr . '<br>';
}
ivashkevich 25.01.2019 в 10:09

Хорошо понимаете синтаксис языка - это похвально. Но в целом решение выглядит переусложненным, можно же просто выводить числа при выполнении условия.

Pro100Bah 25.01.2019 в 13:38
echo 'Homework15' . '<br>';
$array = [];
$a = 345;
while ($a <= 357) {
    if ($a % 2 == 0) {
        $array[] = $a;
    }
    $a++;
}
var_dump($array);
foreach ($array as $index => $value) {
    echo $index . ' ' . $value . '<br>';
}

Понравилось домашнее задание. Но сначала раза 2 проверил себя по уроку. С директивой max_execution_time почитал, но если я ставлю ее 1 мс у меня вообще не открывается страничка, а так по умолчанию стояло 180.

ivashkevich 25.01.2019 в 21:36

По дз - ок. За одну миллисекунду не успеет ничего выполниться.

Pro100Bah 26.01.2019 в 07:30

Понятно, принцип работы директивы ясен.

red.shuhov48@gmail.com 25.01.2019 в 18:42
        $numb = 345;
        $array = [];

        while ($numb++ < 357){
            if ($numb % 2 == 0){
                $array[] = $numb;

            }
        }

        var_dump($array);

        foreach ($array as $item){
            echo $item . '  ';
        }
ivashkevich 25.01.2019 в 21:37

Отлично

volodia.pavloff201343@gmail.com 02.02.2019 в 15:50
<?php
$array = [];
$i = 357;
while ($i >= 345){
    if ($i%2 == 0) {
        $array[] = $i;
    }
    $i--;
}

foreach ($array as $index => $value) {
    echo $array[$index] . '<br>';
}
?>
ivashkevich 03.02.2019 в 23:56

Ок!

rashik-2009@yandex.ru 26.02.2019 в 21:02
<?php

$i = 344;

while ($i <= 354) {

    $i = $i + 2;

    $array[] = $i;
}

foreach ($array as $index => $i) {
echo $index . ' ' . $i . '<br>';
}
echo 'The end';

?>
ivashkevich 02.03.2019 в 16:40

А где проверка на чётность? Числа в условии могут поменяться.

ashfedor 07.03.2019 в 14:19

Немного добавил от себя чтоб массив нагляднее был

$i = 345;
while ($i < 357) {
    if ($i % 2 == 0) {
        $for[] = $i;
    }
    $i++;
}
foreach ($for as $key => $value) {
    echo $key . ' => ' . $value . '<br>';
}
ivashkevich 09.03.2019 в 19:25

$for - плохое название для массива. Лучше хотя бы $array. Перед циклом стоит его проинициализировать как пустой массив:

$array = [];
while ...
babls2332@gmail.com 10.03.2019 в 12:09
<?php
$arr = [];
$i = 345;
while ($i <= 357) {
    if ($i % 2 === 0) {
        $arr[] = $i;

    }
    $i++;
}

foreach ($arr as $value) {
    echo $value . '<br>';
}

Цикл в while(true) вызывает бесконечный цикл. max_execution_time равный 1 позволяет прервать скрипт, если он не выполнился в течении 1 секунды.

ivashkevich 11.03.2019 в 21:06

Отлично!

shtiher@yandex.ru 10.03.2019 в 21:38
<?php

$a = 345;
$b = 357;
$arrEven = [];

while ($a <= $b) {
    if ($a % 2 < 1) {
        $arrEven[] = $a;
    }
    $a++;
}
foreach ($arrEven as $numEven) {
    echo $numEven . '<br>';
}
ivashkevich 11.03.2019 в 21:07

Хорошо. Но вместо

$a % 2 < 1

лучше все же

$a % 2 === 0
Grewi 14.03.2019 в 14:28
$min = 345;
$max = 358;
$evenNumber = [];
echo 'Все четные числа от <b>' . $min . '</b> => ';
while ($min <= $max) {
    if ($min % 2 === 0) {
        $evenNumber [] = $min;
    }
    $min++;
}
foreach ($evenNumber as $eventForeach) {
    echo $eventForeach . ' ';
}
echo ' <= до <b>' . $max . '</b> включительно.';
ivashkevich 17.03.2019 в 23:03

Отлично

lilit 16.03.2019 в 00:34

Первое:

<?php
$array = [];
$i = 345;

while ($i <= 357) {
    if ($i % 2 == 0) {
        $array[] = $i;
    }
    $i++;
};

foreach ($array as $evenNumber) {
    echo $evenNumber . '<br>';
}

Второе: Привел этот код к тому, что 1 выводится бесконечно. Цикл выполняется всегда, т.к. в его условии всегда остается истина.
Далее я изучила max_execution_time и если правильно поняла, то это время выполнения скрипта.
При изменении на 1 секунду выдает ошибку через секунду (Fatal error: Maximum execution time of 1 second exceeded).
Эээ.. выполнение скрипта затрачивает больше времении поэтому останавливается аварийно?

ivashkevich 17.03.2019 в 23:03

Отлично, всё верно.

Boodoo 01.04.2019 в 00:11
<?php
    $arr = [];
    $i = 345;

    while ($i <= 357) {
        if($i % 2 == 0) {
            $arr[] = $i;
        }
        $i++;
    }

    var_dump($arr);
ivashkevich 01.04.2019 в 22:15

Отлично

pavliggs@mail.ru 10.04.2019 в 15:15
<?php

$numbers = [];
$number = 345;
while ($number <= 357) {
    $numbers[] = $number;
    $number++;
}

foreach ($numbers as $key => $number) {
    echo $key . ' - ' . $number . '<br>';
}
ivashkevich 10.04.2019 в 15:21

Ок

artemship 13.04.2019 в 21:35
<?php
$evenNumbers = [];
$i = 345;
while ($i <= 357) {
    if ($i % 2 == 0) {
        $evenNumbers[] = $i;
    }
    $i++;
}
foreach ($evenNumbers as $number) {
    echo $number . '<br>';
}

Код из домашнего задания приводит к зацикливанию, т.к. условие всегда будет выполняться. Директива max_execution_time задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться, иначе выдаст ошибку.

ivashkevich 14.04.2019 в 00:23

Отлично

che4151999@gmail.com 15.04.2019 в 20:31
<?php
$arr = [];
$start = 345;
while ($start < 357) {
    if ($start % 2 == 0) {
        $arr[] = $start;
    }
    $start++;
}

foreach ($arr as $key) {
    echo $key . ', ';
}
ivashkevich 17.04.2019 в 22:08

Отлично

Dram 20.04.2019 в 13:08
<?php
$i = 346;
$arry = [];
while ($i > 345 && $i < 357) {
    $i++;
    if ($i%2==0){
        $arry[] = $i;
    };
}
foreach ($arry as $znachenie ){
    echo $znachenie . '<br>';
}
ivashkevich 20.04.2019 в 13:18

Зачем вы отвечаете к чужим комментариям?

Dram 20.04.2019 в 13:21

Сори, только сейчас заметил что форма отправки верху. А я снизу обыскался. Лента комментов растягивается, было бы логично продублировать форму добавления комментов вниз при n >10

У меня так на моих сайтах :))

P.S. и еще, если сразу код в правильно в теги кода не заключил, то все - при редактировании уже не показывает плашку BB кодов

krollik1000000@gmail.com 08.05.2019 в 13:18
$number = 345;

while ($number <= 357) {
    $arr = [];
    if ($number % 2 === 0) {
        $arr[] = $number;
    }
    forEach ($arr as $numbers) {
        echo $numbers.'<br>';
    }
    $number++;
}

не понял нащёт изменения времени выполнения скрипта у меня стояло 180 я изменил на 1 но страница так и осталась грузится,может я что то не понял?

ivashkevich 10.05.2019 в 13:35

По коду:

  • foreach пишется маленькими буквами
  • внутри одного цикла каждый раз выводится массив на текущем шаге. Получается цикл в цикле, хотя нужно вывести готовый массив только один раз

По вопросу: веб-сервер перезапускали после изменения настроек?

Moskva 14.05.2019 в 14:55

Код:

$x = 345;
$n=0;

while($x<357){
    if ($x % 2 == 0){
        $evenArray[$n] = $x ;
        $n++;
    }
    $x++;
}
foreach($evenArray as $even){
    echo $even . '<br>';
}

Код который исполняет бесконечный цикл:

while(true){
    echo 1;
}

Если изменить в конфигурационном файле max_execution_time на 1, то это приведет к ошибке.

ivashkevich 16.05.2019 в 00:13

Перед циклом нужно определить пустой массив $evenArray.
Переменная $n по сути лишняя - можно добавлять элементы в массив без указания индексов.

Moskva 22.06.2019 в 15:45

Вот так?

$x = 345;
$evenArray = [];

while($x<357){
    if ($x % 2 == 0){
        $evenArray[$n] = $x ;
        $n++;
    }
    $x++;
}
ivashkevich 23.06.2019 в 17:43

Переменная n не проинициализирована. В самый первый раз, где она используется в качестве ключа массива будет ошибка! Ведь такой переменной ещё нет. И не нужна она вам. Добавляйте элементы в массив без использования ключа.

esqrx 05.06.2019 в 14:59
<?php

$i = 344;
while ($i <= 357) {
    if ($i % 2 == 0) {
        $arr[] = $i;
    }
    $i++;
}

foreach ($arr as $value) {
    echo $value;
    echo '<br>';
}
ivashkevich 06.06.2019 в 09:29

Отлично

Bizzzon 05.07.2019 в 12:30
$i = 344;
while ($i < 357 ) {
    if ($i % 2 == 0) {
        $array[] = $i;
    }
    $i++;
}
foreach ($array as $value) {
    echo $value . ' ';
}
ivashkevich 07.07.2019 в 17:57

Отлично!

Reechniy 07.07.2019 в 15:39
<?php

$i=345;

while ($i<=357){
    echo $i;
   if( $i%2==0){
       $arr[]=$i;
   }
   $i++;
    echo'<br>';
}
echo 'Четные: ';
foreach ($arr as $value) {
    echo $value.',';
}
ivashkevich 07.07.2019 в 17:58

Отлично!

kvakazuabr 14.07.2019 в 08:29

1
$arr3 = [];
    $num = 345;
    while($num<357) {
        $num++;
        if($num%2===0) {
            $arr3[] = $num;
        }
    }
    foreach($arr3 as $index => $speed) {
        echo $index . ' ' . $speed . '<br>';
    }
2 
не стоит этого делать будет бесконечно выводить 1 пока не зависнет страница 

3
задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться.
`4 выводит n-количество 1 и останавливается``
ivashkevich 14.07.2019 в 09:07
  1. Если вы поменяете начальное число на 344, то оно пропустится. Сначала нужно выполнять проверку, а потом уже инкрементить число.
  2. Ок
  3. Так какой будет результат?
AlexxxEy 16.07.2019 в 23:51

$i = 345;
while($i != 357){
    $i++;
    if($i % 2 == 0){
        $arr[] = $i;
    }
}
foreach($arr as $index => $n){
    print $index . ' => ' . $n . '</br>';
}
print '</br>';
ivashkevich 17.07.2019 в 04:52

Если вы поменяете начальное число на 344, то оно пропустится. Сначала нужно выполнять проверку, а потом уже инкрементить число.

Aleks 09.08.2019 в 12:33

С помощью цикла while создайте массив, содержащий чётные числа от 345 до 357. Затем выведите элементы массива с помощью цикла foreach.


<?php
$arrayEvenNumbers[0];
$i = 345;

while ($i <= 357) {
        if ($i % 2 == 0){
            $arrayEvenNumbers[] = $i;
        }
        $i++;
}

foreach ($arrayEvenNumbers as $index => $value){
   echo $value . '<br>';
}

**К Бесконечному циклу**
ivashkevich 10.08.2019 в 07:18

Если начальная граница сместится и будет четным числом, например:

$i = 345;

то это число в выборку не попадет. Счётчики инкрементятся в конце итерации, как правило, а не в начале.

Aleks 12.08.2019 в 13:48

Поправил

ivashkevich 13.08.2019 в 06:33

Отлично!

Vladimir96 13.08.2019 в 09:34
//Домашнее задание
//Массив внутри цикла
    $numberForArr = 345;

    while($numberForArr < 358) {

        if($numberForArr % 2 == 0) {
            $array[] = $numberForArr;
        }
        $numberForArr++;
    }

    foreach ($array as $number) {
        echo $number;
        echo '<br>';
}
//Проверка кода
    while (true) {
        echo 1;//бесконечный цикл с выводом 1
    }

 /*Когда я прописал /max_execution_time = 1,
 то скрипт выдал ошибку,Fatal error: Maximum execution time of 1 second exceeded*/
ivashkevich 13.08.2019 в 10:06

В первом задании цикл foreach бессмысленный. Там в массиве всегда один элемент. Ознакомьтесь с другими решениями. Не нужно было делать цикл в цикле.

Vladimir96 13.08.2019 в 11:46

Такой вопрос, почему когда мы пишем такой код

$arr[] = $x;

то значение переменной вставляется в индекс массива, а не заменяет его на само значение переменной? Или я что-то не правильно понял?

ivashkevich 13.08.2019 в 11:51

Ничего в индекс массива не вставляется. Эта запись добавляет элемент в массив. А в вашем коде каждый раз создаётся новый массив с одним элементом.

romaartemov1999@gmail.com 25.08.2019 в 19:15
<?php

function get_EvenNumb(int $x, int $y)
{
    if($x - $y > 0) {
        $max = $x;
        $min = $y;
    }
    else{
        $max = $y;
        $min = $x;
    }

    while ($max >= $min)
    {
        if($min % 2 == 0)
        {
            $even[] = "$min";
        }
        $min++;
    }
    foreach ($even as $value) {
        echo $value . '<br>';
   }

}

get_EvenNumb(345,750);
ivashkevich 26.08.2019 в 07:03

В именах функций не должно быть никаких подчеркиваний.
$even[] = "$min"; - зачем здесь число в строку превращаете?

Ooleg 26.08.2019 в 17:41
$even = [];
$i = 345;

while ($i <= 357){
    if ($i% 2 == 0){
        $even[] = $i;
    }
    $i++;
}

foreach ($even as $value){
    echo $value;
    echo '<br>';
}
ivashkevich 28.08.2019 в 05:39

Число 357 не проверяется.

Ooleg 28.08.2019 в 09:05

Спасибо, поправил.

ivashkevich 28.08.2019 в 17:44

Теперь ок

Dreft 01.09.2019 в 20:18
<?php
$arr = [];
$i = 345;
while ($i <= 357) {
    if ($i % 2 == 0) {
        $arr[] = $i;
    }
    $i++;
}
foreach ($arr as $value) {
    echo $value . " ";
}
ivashkevich 02.09.2019 в 05:02

Отлично

Clawson 04.09.2019 в 13:45
<?php
$evenNums = [];
$startPoint = 345;
$endPoint = 357;
$count = $startPoint;
while ($count <= $endPoint){
    if ($count % 2 == 0) {
        $evenNums[] = $count++;
    }
    else {
        $count++;
    }
}
foreach ($evenNums as $num) {
        echo $num . '<br>';
    }

max_execution_time задает максимальное время в секундах (int), в течение которого скрипт должен полностью загрузиться. Если этого не происходит, работа скрипта завершается. Помогает исключить зависания при корявом коде. По умолчанию - 30 секунд. Если PHP запущен из командной строки, это значение по умолчанию равно 0.

ivashkevich 04.09.2019 в 21:21

Лучше в конце итерации делать инкремент, в одном месте. В остальном все хорошо.

H3licoptero 22.09.2019 в 19:01

Вот на задаче с перебором массива я убедился окончательно, что программирование не всем дано) Солидарен с prinzplanloser0514@gmail.com. Тоже не осилил. А из ответов в комментариях понял, что сложного ничего не было. Артём, какие толковые ресурсы для практики Вы бы могли порекомендовать ещё? Просто ясно, что если это не пойму, дальше не смогу двигаться нормально.

ivashkevich 23.09.2019 в 06:30

https://www.hackerrank.com/ можно тут простые задачи поискать. Но вряд ли будет что-то проще, чем этот урок

H3licoptero 23.09.2019 в 10:15

Спасибо! Буду делать)

dliashchenko 24.09.2019 в 15:56
<?php
$arrayNumbers = [];
$startNumber = 345;
$endNumber = 357;

while( $startNumber <= $endNumber){
        if($startNumber %2 == 0){
            $arrayNumbers[] = $startNumber;
        }
        $startNumber++;
}

foreach ($arrayNumbers as $number) {
    echo $number.",<br/>";
}
ivashkevich 24.09.2019 в 20:18

++$startNumber - когда нет разницы, что первее сделать, увеличить и вернуть, или вернуть а потом увеличить, стоит использовать постинкремент

H3licoptero 24.09.2019 в 22:05
$ar = [];
$i = 345;

while ($i <= 357) {
    if ($i % 2 === 0) {
        $ar[] = $i;
    }
    $i++;
}

foreach ($ar as $value) {
    echo $value . '<br>';
}

Сделяль(насколько можно считать это самостоятельным решением после стольких фейлов))

ivashkevich 27.09.2019 в 17:42

Последнее число не проверяется. Если потом вдруг верхняя граница изменится на 358, то оно не попадет в массив четных чисел. А должно.

kvakazuabr 10.10.2019 в 19:49
$i = 345;
$arr = [];
while ($i < 357) {
  if($i%2==0) {
    $arr[] = $i;
  }
  $i++;
}
foreach($arr as $value) {
  echo $value . ' ';
}

бесконечно выводило 1
изменил запустил и особой разницы не заметил

ivashkevich 10.10.2019 в 21:55

Отлично. Значит нужно ещё меньше таймаут поставить.

Evilinside 14.10.2019 в 18:52
//С помощью цикла while создайте массив, содержащий чётные числа от 345 до 357. Затем выведите элементы массива с помощью цикла foreach.

$i = 345;
$arr = [];

while ($i <= 357) {

    if ($i % 2 == 0) {
        $arr[]=$i;
    }
    $i++;
}
foreach ($arr as $elem){
    echo $elem."\n";
}

//2ое задание: Цикл будет бесконечным ( в данном случае скрипт проработает 30 секунд, после чего автоматически прекратит работать). Если поставить значение max_execution_time = 1, то скрипт прекратит работу через 1 секунду.

ivashkevich 14.10.2019 в 20:18

Супер!

zuxarevaalina88@gmail.com 15.10.2019 в 11:49
<?php
$i=345;
$mass=[];
while ($i<357) {
      if ($i %2 == 0) {
    $mass[] = $i;

}
    $i++;
}

var_dump($mass);
?>
2ое задание - это бесконечный цикл.
при max_execution_time 1 секунда получаем: Fatal error: Maximum execution time of 1 second exceeded in W:\domains\myproject.loc\www\content.php on line 3
ivashkevich 15.10.2019 в 13:21

Поправьте отступы, почему всё пляшет? В PhpStorm можно нажать Ctrl+Alt+L и оно само исправится.

Не вижу второго цикла foreach. Перечитайте ДЗ.

Число 357 тоже должно проверяться. Верхняя граница может измениться, а код должен продолжить работать. Изменим, например, на 358, а оно не будет проверяться. Исправьте это.

zuxarevaalina88@gmail.com 16.10.2019 в 09:14
<?php
$i = 345;
$mass = [];
while ($i <= 357) {
    if ($i % 2 == 0) {
        $mass[] = $i;
    }
    $i++;
}
foreach ($mass as $value) {
    echo $value . ' ';
}
ivashkevich 16.10.2019 в 10:03

Отлично

anton-gogo@mail.ru 16.10.2019 в 15:35
<?php 

$x = 345;

while($x <= 357){
    if($x % 2 ==0){
        $val[]= $x;

    }
    $x++;
}
foreach($val as $sum){
    echo($sum);
    echo('<br>');
}
ivashkevich 16.10.2019 в 21:22

echo - не функция. Не нужно правую часть помещать в скобки.

    if($x % 2 ==0){
        $val[]= $x;

    }

Почему здесь одна строка пустая?

andreskrip 10.11.2019 в 18:19
// С помощью цикла while создайте массив, содержащий чётные числа от 345 до 357. Затем выведите элементы массива с помощью цикла foreach.
$i = 345;
$evenArray = [];

while ($i <= 357) {
        if ($i % 2 == 0) {
        $evenArray[] = $i;
    }
    $i++;
}
foreach ($evenArray as $number) {
    echo $number . '<br>';
}
  • Запустите следующий код: while (true) { echo 1; }. К чему это привело?
    К бесконечному циклу и выводу единиц.
  • Изучите, для чего нужна директива max_execution_time в файле конфигурации php.ini и установите её равной одной секунде. Снова запустите этот код.
    Эта директива устанавливает максимальное время загрузки скрипта. В случае превышения лимита, парсер завершает работу данного скрипта.
    После изменения конфигурации вылез фатал еррор: Maximum execution time of 1 second exceeded in C:\OpenServer\domains\myproject.loc\arrays.php on line 3
ivashkevich 11.11.2019 в 19:32

Числа 345 и 357 не проверяются, а должны.

andreskrip 15.11.2019 в 15:55

исправил

ivashkevich 15.11.2019 в 18:48

Теперь ок

ivanenko_94@mail.ru 15.11.2019 в 23:39

Первое задание интересно и легко)


<?php
$array = [];
$x = 345;

while($x < 358) {
    if ($x % 2 === 0) {
        $array[] = $x;
}
$x++;
}
foreach($array as $key => $test){
    echo $test;
    echo '<br>';
}

?>

Второе задание в принципе ожидаемо)

когда js учил по случайности делал похожие бесконечные циклы.

А вот max_execution_time чета не получиось сделать

ivashkevich 16.11.2019 в 05:39

Число 357 тоже должно проверяться.

YuraG 23.11.2019 в 23:06

$startNumber = 345;
$addArray = [];

while ($startNumber <= 357) {

    if ($startNumber % 2 == 0) {
        $addArray[] = $startNumber;
    }

    $startNumber++;
}

foreach ($addArray as $number) {
    echo $number . '</br>';
}

код:
<?php
while (true) {
echo 1;
}
К чему это привело? к постоянному выполнению тела цикла.

директива max_execution_time нужна для указания времени для полной загрузки скрипта.Если загрузка заняло более времени то загрузка прекращается.
ivashkevich 24.11.2019 в 20:30

Отлично

Diogen 25.11.2019 в 21:52
<?php
function fibonacci($n)
{
    if ($n==0){
        return 0;
    }
    elseif ($n==1) {
        return 1;
    }
    else {
        return fibonacci($n-1) + fibonacci($n-2);
    }
}

for ($n =0; fibonacci($n) <= 100000; $n++) {
       print(fibonacci($n) . ", ");
    }

?>
ivashkevich 26.11.2019 в 10:12

Крайне неоптимальное решение, но рабочее.

Salexandr 12.12.2019 в 22:51
$i = 345;
While ($i <= 357) {
    if ($i % 2 == 0) {
        $arr[] = $i;
    }
     $i++;
}
foreach ($arr as $odd){
    echo $odd;
    echo '<br>';
}
ivashkevich 14.12.2019 в 15:24

Отлично!

Логические задачи с собеседований