2016-05-06 2 views
1

Я знаю, что мы можем пропустить следующую итерацию с помощью continue в цикле for. В любом случае, чтобы пропустить следующие x петель (2 или более)?PHP Можно ли пропустить две или более итераций?

+1

Для справки продолжают не пропустить следующую итерацию, он заканчивает текущий. –

+0

Вы можете попробовать определить дополнительное целое число, установить его на количество циклов, которые вы хотите пропустить, и иметь 'if (y <0) {continue; } 'тип вещи –

+2

Вы можете попробовать использовать continue; и i + = 10; пропустить больше итераций? –

ответ

4

вы действительно не можете, вы можете сделать пакость, как

for ($i=0; $i<99; $i++){ 
    if(someCondition) { 
     $i = $i + N; // This will sum N+1 because of the $i++ in the for iterator (that fire when the new loop starts) 
     continue; 
    } 
} 
1

Если вы переборе с цикл (в отличие от цикла Еогеасп) вы могли бы сделать что-то вроде этого:

for ($i=0; $i<$numLoops; $i++) { 
    if(condition()) { 
     $i+= $numLoopsToSkip; 
     continue; 
    } 
} 
+0

Вам нужно добавить еще один код * i *. Добавление 0 будет прерывать текущую итерацию. – trincot

1

Возьмем, к примеру, вы можете определить количество раз вы хотите, чтобы петля как вы хотите, как $y

<?php 
y = 5; 

while (true) { 
    // do something 
    if (y > 0) { 
     y--; 
     continue; 
    } 
    // do something else 
} 
?> 
+1

Я думаю, что это создаст уродливую петлю, '' 'y''' никогда не будет уменьшаться, поэтому всегда будет> 0 –

+0

@GummaMocciaro Shh ... вы ничего не видели ... У меня еще не было моего кофе. .. –

+0

бывает мат: P –

0

Скоро в PHP «X» ;-)

continue += x; 
+0

Если это даже хорошая идея (ссылка: Edsger W. Dijkstra), я надеюсь, что все будет так просто. –

Смежные вопросы