За последние 24 часа нас посетили 98369 программистов и 5615 роботов. Сейчас ищут 2175 программистов ...

Цикл

Тема в разделе "PHP для новичков", создана пользователем burlakoff, 24 ноя 2016.

  1. burlakoff

    burlakoff Новичок

    С нами с:
    24 ноя 2016
    Сообщения:
    4
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3. for ($i = 1; $b<10; $i++) {
    4. $b =$i*$i;
    5. echo "$i*$i = $b \n";
    6.  
    7. }
    Вот результат этого :
    Успешно time: 0.01 memory: 52488 signal:0
    11 = 1
    2
    2 = 4
    33 = 9
    4
    4 = 16
    А как сделать так, чтобы на 9 заканчивался цикл? Понять не могут ? В принципе, логика понятно, почему 16 получается . 33 = 9;, проверяется это условие , потом выполняется действие и выводится 16. А как сделать так, чтоб на 33 цикл заканчивался ?
    Сори за спам
     
  2. NoPr0gress

    NoPr0gress Новичок

    С нами с:
    11 ноя 2016
    Сообщения:
    48
    Симпатии:
    3
    PHP:
    1. <?php
    2. for ($i = 1; $b<10; $i++) {
    3. $b =$i*$i;
    4. echo "$i*$i = $b <br>";
    5.  
    6.     if($b == 9)
    7.         break;
    8. }
     
  3. burlakoff

    burlakoff Новичок

    С нами с:
    24 ноя 2016
    Сообщения:
    4
    Симпатии:
    0
    Не ну такой ответ и я додумался. Но если я не знаю ответа на предпоследнее действие. Но мне надо, чтобы ответ был меньше чем 1400.
    Все равно, выполняется на один цикл больше, чем надо. Ведь сначала проверяется условие, после действие, которые приводит к тому, что ответ выходит больше условия и это выводится на экран.
    Цифры вообще не имеют значения, тут дело в сути. Как сделать на один цикл меньше.
    --- Добавлено ---
    Есть подозрения, что без оператора while этого не сделать. Я прав?
     
  4. apaxican

    apaxican Новичок

    С нами с:
    21 ноя 2016
    Сообщения:
    9
    Симпатии:
    0
    сделай проверку через if, тип если следующая операция превышает нужное число, то { }
    если не превышает, то
    {
    $b=$i*$i;
    echo $i,"*",$,"i = ",$b," <br>";
    }
    PHP:
    1. for($i = 1; $b<10; $i++)
    2. {
    3.   $b =$i*$i;
    4.   if ($b <10) //тут любое число, какое хочешь
    5.   {
    6.     echo  $i,"*",$,"i = ",$b," <br>";
    7.  
    8.   }
    9. else { }
    10. }
     
  5. burlakoff

    burlakoff Новичок

    С нами с:
    24 ноя 2016
    Сообщения:
    4
    Симпатии:
    0
    Все другие пути решения с другими операторами я знаю. Можно ли внутри for, сделать данный цикл?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Операторы цикла могут быть составными
    Код (Text):
    1. for ($i = 1; $b<10; $i++, $b = $i*$i) {
    2.   echo "$i*$i = $b \n";
    3. }
     
    denis01 и burlakoff нравится это.
  7. burlakoff

    burlakoff Новичок

    С нами с:
    24 ноя 2016
    Сообщения:
    4
    Симпатии:
    0
    Вот, спасибо огромное. Дельный ответ!