За последние 24 часа нас посетили 22903 программиста и 1261 робот. Сейчас ищут 679 программистов ...

Ошибка: Функция ничего не возвращает

Тема в разделе "Сделайте за меня", создана пользователем Krutnik, 13 мар 2021.

  1. Krutnik

    Krutnik Новичок

    С нами с:
    13 мар 2021
    Сообщения:
    1
    Симпатии:
    0
    Доброй ночи, я изучаю PHP недавно, написал функцию с циклом и if else, выдает ошибку, что функция ничего не возвращает, почему? Что я, не доделал? подскажите плиз, а то уже все мануалы пролистал и никак не пойму где ошибка.

    вот была задачка:
    2. В цикле от 0 до $n (включая) сделайте следующее (должно выполнится только одно из условий):

    - если число делится без остатка на 3 – выведите это число, с помощью оператора echo (каждое число на отдельной строке)
    - если число делится без остатка на 5 – прибавьте это число к переменной $sum
    - если число делится и на 5 и на 3 – то вычтите из $sum единицу

    Функция должна вернуть сумму в качестве результата своей работы.

    а вот код:
    PHP:
    1. function task17($n) {
    2.     $sum = 0;
    3.  
    4.     for($x = 0; $x <= $n; $x++) {
    5.         if ($n % 3 == 0) {
    6.             return $n;
    7.             echo  PHP_EOL;
    8.             // число 3
    9.         }
    10.         else if ($n % 5 == 0) {
    11.             return $sum + $n;
    12.             echo  PHP_EOL;
    13.             // число 5
    14.         }
    15.         else if ($n % 5 == 0 and $n % 3 == 0) {
    16.             return $sum - 1;
    17.             // число 15
    18.         }
    19.     }
    20. }
    21.  
    22. echo task17(5);
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Прежде, чем писать код, нужно составить его алгоритм. Хотя бы в голове.
    Задача. Выполнить только одно из трех условий.

    1. Запустить цикл.
    2. Если выполнилось Условие 1, - вывести результат и остановить цикл.
    3. Если выполнилось условие 2 - вернуть результат и остановить цикл.
    4. Если выполнилось условие 3 - вернуть результат и остановить цикл.