За последние 24 часа нас посетили 21600 программистов и 1017 роботов. Сейчас ищут 675 программистов ...

цикл for

Тема в разделе "PHP для новичков", создана пользователем selivanov, 28 янв 2018.

  1. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    нашел такой код не могу понять почему на выход выдаёт 10 а не 6

    function func($arg) {
    $result= 0;
    for($i=0; $i<$arg; $i++) {
    $result= $result+ $i;
    }
    return $result;
    }
    echo func(5);
     
  2. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Всё правильно

    --- Добавлено ---
    PHP:
    1. $result = 0 + 0 = 0; // $i = 0, $result = 0
    2. $result = 0 + 1 = 1; // $i = 1, $result = 1
    3. $result = 1 + 2 = 3; // $i = 2, $result = 3
    4. $result = 3 + 3 = 6; // $i = 3, $result = 6
    5. $result = 6 + 4 = 10; // $i = 4, $result = 10
     
    #2 Dimon2x, 28 янв 2018
    Последнее редактирование: 28 янв 2018
    selivanov нравится это.
  3. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    ок а почему выводит только последниий результат 10 а не все
    0,
    1,
    3,
    6
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @selivanov цикл отработал и вернулась переменная, которую просил
     
    selivanov нравится это.
  5. AlexandrS

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

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Для вывода всех результатов записывай каждый в массив и тогда получишь всё, а не последнее, т.е. что-то такое

    PHP:
    1. function func($arg) {
    2. $result = [];
    3. for($i=0; $i<$arg; $i++) {
    4. $result[] = $i;
    5. }
    6. return $result;
    7. }
    8. print_r(func(5)) ;
    Или если тебе нужно начинать с какого-то определенного числа то:

    PHP:
    1. function func($arg) {
    2. $result = [];
    3. $start = 5;
    4. for($i=0; $i<$arg; $i++) {
    5. $result[] = $start + $i;
    6. }
    7. return $result;
    8. }
    9. print_r(func(5)) ;
     
    selivanov нравится это.
  6. selivanov

    selivanov Новичок

    С нами с:
    1 фев 2017
    Сообщения:
    123
    Симпатии:
    4
    спасибо .теперь понятно