Как выполнить действие каждые 5 результатов?

Как я могу выполнить действие в for цикл каждые 5 результатов?

В основном я просто пытаюсь эмулировать таблицу с 5 столбцами.

6 ответов

Вы могли бы использовать оператор модуля

for(int i = 0; i < 500; i++)
{
    if(i % 5 == 0)
    {
        //do your stuff here
    }
}

Для таблицы HTML попробуйте это.

<Таблица>
    
  
    
         
    
    
    
    
    

Это работает, чтобы получить живой индекс в цикле foreach:

<?php

// Named-Index Array
$myNamedIndexArray = array('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic', 'test' => 'one two', 'potato' => 'french fries', 'tomato' => 'ketchup', 'coffee' => 'expresso', 'window' => 'cleaner', 'truck' => 'load', 'nine' => 'neuf', 'ten' => 'dix');

// Numeric-Index Array of the Named-Index Array
$myNumIndex = array_keys($myNamedIndexArray);


foreach($myNamedIndexArray as $key => $value) {
    $index = array_search($key,$myNumIndex);

    if ($index !== false) {
        echo 'Index of key "'.$key.'" is : '.$index.PHP_EOL;

        if (($index+1) % 5 == 0) {
            echo '[index='.$index.'] stuff to be done every 5 iterations'.PHP_EOL;
        }
    }

}

Как указано, можно использовать условие с модулем. Вы также можете сделать это с помощью вложенных циклов.

int n = 500;
int i = 0;

int limit = n - 5
(while i < limit)
{
   int innerLimit = i + 5
   while(i < innerLimit)
   {
       //loop body
       ++i;
   }
   //Fire an action
}

Это хорошо работает, если n гарантированно будет кратно 5, или если вам не нужно запускать дополнительное событие в конце. В противном случае вы должны добавить это до конца, и это делает его менее красивым.

//If n is not guaranteed to be a multiple of 5.
while(i < n)
{
  //loop body
  ++i;
}

и измените int limit = n - 5 на int limit = n - 5 - (n % 5)

Еще один вариант:

int j = 0;
для (int i = 0; i < 500; i++) 
{ 
    j++;
    если (j >= 5) 
    { 
        j = 0;
        // делай свои вещи здесь 
    } 
}

Я старомоден, я помню, когда деление заняло много времени. С современным процессором это, вероятно, не имеет большого значения.

// That's an easy one

for($i=10;$i<500;$i+=5)
{
    //do something
}
Другие вопросы по тегам