Soluzione più semplice: sostituire il segno "+" con un "-". Ciò causerà la fine del ciclo. Così:
$loop_Until = 10;
while($i < $loop_Until)
{
// do some code here
$loop_Until = $loop_Until - 1;
}
Lasciatemi spiegare, fornire una soluzione leggermente migliore e darvi alcune alternative.
Se assumiamo che $ i inizia come inferiore a $ loop_Until, quindi aggiungere 1 a $ loop_Until con la riga $loop_Until = $loop_Until + 1;
non lo farebbe mai in modo che $ i sia uguale o maggiore di $ loop_Until.
È necessario sottrarre da $ loop_Until o aggiungere a $ i.
La sottrazione 1 da una variabile può essere eseguita rapidamente eseguendo, --$variable
. L'aggiunta di 1 ad una variabile può essere fatto in fretta facendo, ++$variable
, quindi si dovrebbe avere:
$loop_Until = 10;
while($i < $loop_Until)
{
// do some code here
--$loop_Until;
}
Naturalmente $ loop_Until suona come qualcosa che si potrebbe desiderare di impostare una volta, e poi lo hanno rimanere invariato. In questo caso, è possibile impostare $ i e incrementarlo. Quindi, prima impostare $ i per quello che vuoi (più piccolo di $ loop_Until, se si desidera che il ciclo while per eseguire almeno una volta), quindi:
$loop_Until = 10;
while($i < $loop_Until)
{
// do some code here
++$i;
}
Per inciso, ++$i is faster than $i++
Come accennato Lizard, il per il ciclo è ottimo per farlo. I due equivalente per i loop per le due sezioni di codice di cui sopra sono
for($loop_Until = 10; $i < $loop_Until; --$loop_Until)
{
// do some code here
}
e
for($loop_Until = 10; $i < $loop_Until; ++i)
{
// do some code here
}
Basta fare in modo di verificare che la vostra condizione finirà per accadere con un paio di numeri su un pezzo di carta o in la tua testa.
Infine, quale di queste soluzioni si sceglie dipenderà dal fatto che si desidera che $ i o $ loop_Until rimangano invariati.
Se si dispone di più loop e si desidera eseguire tutti la stessa quantità di volte, è probabilmente una buona idea mantenere $ loop_Until non modificato e reimpostare $ i all'inizio di ogni ciclo.
Qual è l'intervallo che ci si aspetta? –