компилятор пишет функция ничего не выводит.как можно исправить код

 function task17($n) {
   $sum =0;
   
   for ($j=0; $j <= $n; $j++) {
     if ($n % 3 == 0) { //если число делится без остатка на 3
       echo "$n<br>";  
     } else if ($n % 5 == 0) { //если число делится без остатка на 5
     //прибавьте это число к переменной $sum
       $sum += $n;}
     else if ($n % 3 == 0 && $n % 5 == 0) { //если число делится и на 5 и на 
       3
      $sum -=1;
    }
  }
  return  $sum; 
}

Ответы (1 шт):

Автор решения: endyrlx

Может, кому-то будет полезно мое замечание (на авторитетное мнение не претендую, т.к. в программировании новичок), но я считаю, что в программе на первое место нужно поставить проверку деления на 3 и на 5 в самый верх, т.к., например, при j = 15, сработает первый if и выполнит echo "$n<br>";, хотя, должно выполниться $sum -=1;.

В тестовом задании я сделал следующий код, который считаю более верным:

function task17($n){
    $sum = 0;
    for ($i=0; $i <= $n; $i++) {
        if ($i%5==0 && $i%3==0) {
            $sum -= 1;
        }
        elseif ($i%3==0) {
            echo "$i <br>";
        }
        elseif ($i%5==0) {
            $sum += $i;
        }
    }
    return $sum;
}
→ Ссылка