Wie kann ich eine Aktion innerhalb einer for
Schleife alle 5 Ergebnisse durchführen?Wie führe ich alle 5 Ergebnisse eine Aktion aus?
Im Grunde versuche ich nur eine Tabelle mit 5 Spalten zu emulieren.
Wie kann ich eine Aktion innerhalb einer for
Schleife alle 5 Ergebnisse durchführen?Wie führe ich alle 5 Ergebnisse eine Aktion aus?
Im Grunde versuche ich nur eine Tabelle mit 5 Spalten zu emulieren.
könnten Sie den Modulo-Operator
for(int i = 0; i < 500; i++)
{
if(i % 5 == 0)
{
//do your stuff here
}
}
Es ist möglich, verwenden Sie eine Bedingung mit einem Modul zu verwenden, wie aufgezeigt. Sie können dies auch mit verschachtelten Schleifen tun.
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
}
Das funktioniert gut, wenn n ein Vielfaches von 5 sein wird garantiert, oder wenn Sie keine zusätzliche Veranstaltung über Brennen am Ende ist es egal. Andernfalls müssen Sie das zum Ende hinzufügen, und es macht es weniger schön.
//If n is not guaranteed to be a multiple of 5.
while(i < n)
{
//loop body
++i;
}
und Änderung int limit = n - 5 bis int limit = n - 5 - (n% 5)
Für eine HTML-Tabelle, versuchen Sie dies.
<?php $start = 0; $end = 22; $split = 5; ?> <table> <tr> <?php for($i = $start; $i < $end; $i++) { ?> <td style="border:1px solid red;" > <?= $i; ?> </td> <?php if(($i) % ($split) == $split-1){ ?> </tr><tr> <?php }} ?> </tr> </table>
Eine weitere Variante:
int j=0; for(int i = 0; i < 500; i++) { j++; if(j >= 5) { j = 0; //do your stuff here } }
Ich bin altmodisch, ich erinnere mich, als Teilung dauerte eine lange Zeit. Bei modernen CPUs spielt es wahrscheinlich keine Rolle.
ist nicht das, wenn sollte wenn (j == 5) sein? – mhd
// That's an easy one
for($i=10;$i<500;$i+=5)
{
//do something
}
Der Code in dieser Schleife wird nicht bei jedem 5. Lauf aufgerufen, er wird jeweils aufgerufen! Nur deine Variable $ i wird bei jedem Lauf um 5 erhöht. – tbraun89
Dies funktioniert ein Live-Index innerhalb der foreach-Schleife zu erhalten:
<?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;
}
}
}
Wenn die Umstände es zulassen können Sie auch nur 'for ($ i = 0; i $ 500 <; $ i + = 5) {...} '. – Joey
@Johannes Ich denke, er will die Verarbeitung für jede ganze Zahl von 0 bis n machen, aber eine Aktion für jedes fünfte Element auslösen. Ich könnte mich allerdings irren. – patros
Beachten Sie, dass '(i% 5 == 0)' auf den ersten, sechsten, elften, ... Pässen laufen wird. Verwenden Sie '(i% 5 == 4)', um auf die fünfte, zehnte, fünfzehnte, ... führt statt. –