Как увеличить число на 2 в цикле PHP For

Ниже приведена упрощенная версия моего кода:

<?php for($n=1; $n<=8; $n++): ?>
    <p><?php echo $n; ?></p>
    <p><?php echo $n; ?></p>
<?php endfor; ?>

Я хочу, чтобы цикл выполнялся 8 раз, и я хочу, чтобы число в первом абзаце увеличивалось на 1 с каждым циклом, например.

1, 2, 3, 4, 5, 6, 7, 8 (это очевидно просто)

Однако я хочу, чтобы число во втором абзаце увеличивалось на 2 с каждым циклом, например...

1, 3, 5, 7, 9, 11, 13, 15

Я не могу понять, как увеличить число во втором абзаце на 2 с каждым циклом. Если я изменю его на $n++, он увеличится на 2, но тогда цикл будет выполняться только 4 раза вместо 8.

Любая помощь приветствуется. Спасибо!


person user2586455    schedule 07.11.2013    source источник
comment
... немного жестко, это первый раз, когда я работал с циклами for.   -  person user2586455    schedule 07.11.2013
comment
@Alma Do: Зачем издеваться над ОП, может, парень новенький? Не все люди имеют опыт работы с кодом, как вы. Что печально, так это ваш комментарий и те, кто проголосовал за него.   -  person Display name    schedule 25.11.2014


Ответы (6)


<?php
  for ($n = 0; $n <= 7; $n++) {
    echo '<p>'.($n + 1).'</p>';
    echo '<p>'.($n * 2 + 1).'</p>';
  }
?>

Первый параграф:

1, 2, 3, 4, 5, 6, 7, 8

Второй абзац:

1, 3, 5, 7, 9, 11, 13, 15
person Legionar    schedule 07.11.2013
comment
Спасибо, именно то, что мне было нужно. Это, очевидно, очень просто, как предполагают отрицательные голоса / комментарии к исходному вопросу, но пара других предложенных ответов либо явно неверны, либо излишне сложны. Не сразу очевидно для новичка. - person user2586455; 07.11.2013

Вы должны сделать это следующим образом:

 for ($i=1; $i <=10; $i+=2) 
{ 
    echo $i.'<br>';
}

"+=" вы можете увеличить свою переменную настолько, насколько хотите. "$i+=5" или "$i+=.5"

person AntonioAvp    schedule 15.06.2016
comment
Да, это не отвечает на вопрос правильно. Это только указывает на особенность языка, которая лучше подходит для комментария, если это является целью. - person tiomno; 07.12.2017
comment
Я согласен с критикой незаконченности вопроса, но это вызывает у меня вопрос. Этот ответ ДЕЙСТВИТЕЛЬНО отвечает на вопрос в заголовке, который я искал в Google. Возможно, это не самый полный ответ, но, безусловно, самый популярный. Так это все еще неуместно, даже если это полезно? - person Pixelsmith; 04.09.2020

Вы должны использовать другую переменную:

 $m=0; 
 for($n=1; $n<=8; $n++): 
  $n = $n + $m;
  $m++;
  echo '<p>'. $n .'</p>';
 endfor;
person Manolo    schedule 07.11.2013
comment
Действительно, приятно. Терпеть не могу ненужные php теги - person Loko; 07.11.2013

Простое решение

<?php
   $x = 1;
     for($x = 1; $x < 8; $x++) {
        $x = $x + 1;
       echo $x;
     };    
?>
person Oladimeji Ajeniya    schedule 21.12.2016
comment
Первый $x = 1; там бесполезен - person Yousha Aleayoub; 08.12.2017

Еще одно простое решение с +=:

$y = 1;

for ($x = $y; $x <= 15; $y++) {
  printf("The number of first paragraph is: $y <br>");
  printf("The number of second paragraph is: $x+=2 <br>");
} 
person Manuel    schedule 19.11.2017

person    schedule
comment
это неправильно на столь многих уровнях... во-первых, он выведет: 369, $x объявлен дважды без необходимости, точка с запятой после фигурной скобки ничего не делает };, закрывающий тег php нам тоже бесполезен ?> - person gondo; 24.05.2016