Ошибка "Функция ничего не возвращает"
Этот код работает правильно в программе. Но при выводе в стороннюю консоль выдает ошибку "Функция ничего не возвращает". Что это значит? Вроде выведена, в программной консоли, на которой пишу отображает, на сайте отображает..
function task17($n)
{
$sum = 0;
for (; $sum <= $n; $sum++) {
if ($n % 5 == 0 && $n % 3 == 0) {
echo 'Делится и на 5 и на 3</br>';
break;
}elseif ($n % 5 == 0){
echo 'Делится на 5</br>';
break;
}elseif ($n % 3 == 0) {
echo 'Делится на 3</br>';
break;
}
}
}
task17(20);
Изменила код на такой, сообщение о том что функция ничего не выводит осталось.
function task17($n)
{
$sum = 0;
for ($i = 0; $i <= $n; $i++) {
$sum += $i;
if ($n % 5 == 0 && $n % 3 == 0){
return 'Делится и на 5 и на 3</br>';
}elseif ($n % 5 == 0){
return 'Делится на 5</br>';
}elseif ($n % 3 == 0){
return 'Делится на 3</br>';
}
}
return $sum;
}
echo task17(15);
Изменила немного условия, чтобы вместо строки выводилось действие:
function task17($n)
{
$sum = 0;
for ($i = 0; $i <= $n; $i++) {
if ($n % 5 == 0 && $n % 3 == 0){
echo $n - 1;
break;
}elseif ($n % 5 == 0){
echo $n+$sum;
break;
}elseif ($n % 3 == 0){
echo $n;
break;
}
}
}
task17(15);
Прикладываю саму задачу, цитирую:
Создайте функцию task17 с одним параметром $n
Внутри этой функции вам нужно сделать следующее:
- Заведите переменную: $sum = 0; - сумма чисел делящихся на 5
- В цикле от 0 до $n (включая) сделайте следующее (должно выполнится только одно из условий):
- если число делится без остатка на 3 – выведите это число, с помощью оператора echo (каждое число на отдельной строке)
- если число делится без остатка на 5 – прибавьте это число к переменной $sum
- если число делится и на 5 и на 3 – то вычтите из $sum единицу
Функция должна вернуть сумму в качестве результата своей работы.
В итоге приняло такой вид функции(правильный вид):
function task17($n){
$sum = 0;
for ($i=0; $i<=$n; $i++) {
if ($i % 5 == 0 && $i % 3 == 0)
$sum--;
elseif ($i % 3 == 0)
echo "Делится на 3"."\r\n";
elseif ($i % 5 == 0)
$sum += $i;
}
return $sum;
}
echo task17(20);