Эхо когда счетчик четный но не ноль - PullRequest
1 голос
/ 01 апреля 2011
for ($i=0; $i<=25; $i++) {
if ($i % 2) { is odd } else { is even }
}

Я должен начать с 0, но я не хочу, чтобы он выглядел четным.

Ответы [ 9 ]

3 голосов
/ 01 апреля 2011
for ($i=0; $i<=25; $i++) 
{
    if($i == 0)
    {
        continue;
    }
    if ($i % 2) 
    { 
         //is odd 
    } 
    else 
    { 
         //is even 
    }

}

Это так просто.Продолжение заставит его пропустить остаток этой конкретной итерации цикла.Вы также можете сделать некоторый код для обработки 0 до continue, так как 0 не является ни четным, ни нечетным.Или вы могли бы сделать это первой частью структуры if / elseif / else.

Или вместо if($i % 2) вы могли бы сделать if($i % 2 || $i == 0), что заставило бы его обрабатывать нечетный, а не четный код.

1 голос
/ 01 апреля 2011

Прежде всего, вам действительно нужно начинать цикл for с 0?Вы можете легко обойти это, выполнив for ($i=1; $i<=25; $i++)

Если вам действительно нужно начать с 0, вы можете поставить тест для этого особого случая:



if ($i === 0 || $i % 2) { is odd } else { is even }

1 голос
/ 01 апреля 2011
for ($i=0; $i<=25; $i++) {
if (i==0) {
  echo 'zero';
  } elseif ($i % 2 ==0) { 
  echo 'is even'; 
 } else { 
  echo 'is odd'; 
 }
}

ИЛИ

 for ($i=0; $i<=25; $i++) {
    if ($i !=0){
      if ($i % 2 ==0 { 
        echo 'is even'; 
      } else { 
        echo 'is odd'; 
      }
    }
  }
1 голос
/ 01 апреля 2011

Это так просто.

for ($i=0; $i<=25; $i++) {
    if($i) {
        if ($i % 2) { is odd } else { is even }
    }
    // Other code
}

Или если вы хотите считать 0 как нечетное:

for ($i=0; $i<=25; $i++) {
    if (!$i || $i % 2) { is odd } else { is even }
    // Other code
}
0 голосов
/ 01 апреля 2011

Почему бы не добавить еще 1 ответ на этот уже хорошо отвеченный пост:

for ($i=0; $i<=25; $i++)
{
    if($i === 0) continue;
    if ($i % 2) { is odd } else { is even }
}

если вы добавите if($i === 0) continue;, он пропустит остальную часть кода и перейдет к следующей итерации.

0 голосов
/ 01 апреля 2011

Я думаю, что вам нужно, к сожалению, дополнительный, если ...

    for ($i=0; $i<=25; $i++) {
echo (($i>0)?(($i % 2 )? "odd":"even"):"whatever");
}
0 голосов
/ 01 апреля 2011

Возможно, это не самый читаемый, но самый эффективный вариант:

for ($i=0; $i<=25; $i++) {
    if ($i)
        if ($i & 1) { is odd } else { is even }
}
0 голосов
/ 01 апреля 2011

Если вы хотите перебирать только четные значения, это будет сортировать:

for ($i=0; $i<=25; $i+=2) {
...
}
0 голосов
/ 01 апреля 2011

для ($ i = 0; $ i <= 25; $ i ++) { if ($ i% 2 && $ i! = 0) {нечетно} иначе {является четным} } </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...