PHP'de break ve continue arasındaki fark nedir?


Yanıtlar:


517

breakbir döngüyü tamamen sonlandırır, continuesadece geçerli yinelemeyi kısaltır ve bir sonraki yinelemeye geçer.

while ($foo) {   <--------------------┐
    continue;    --- goes back here --┘
    break;       ----- jumps here ----┐
}                                     |
                 <--------------------┘

Bu şu şekilde kullanılır:

while ($droid = searchDroids()) {
    if ($droid != $theDroidYoureLookingFor) {
        continue; // ..the search with the next droid
    }

    $foundDroidYoureLookingFor = true;
    break; // ..off the search
}

56
Bu işlevlerin kötüye kullanılması şu sonuca neden olur: flickr.com/photos/24973901@N04/2762458387
neokio 13:02

7
Bu yanıtı seviyorum! Bana WP.org'un Yoda Koşulları hakkındaki önerisini hatırlat: make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor

4
bu yanıttan 7 yıl sonra ama bunu söylemeye değer. v4 php belgelerinde olduğu gibi breakve continueiçinde aynıdır switch. her ikisi de anahtardan çıkar. veya varsa kullanın, dış döngüden çıkmak için continue 2.
Amin.Qarabaqi


@deceze, kodlu bu örnek kötü. Hiçbir yerde kullanılmayan bir değişken atarsınız. Önerilen düzenleme daha okunaklıydı.
Tajni

49

break, bulunduğunuz döngüden çıkar, devam etmek için hemen bir sonraki döngü ile başlar.

Misal:

$i = 10;
while (--$i)
{
    if ($i == 8)
    {
        continue;
    }
    if ($i == 5)
    {
        break;
    }
    echo $i . "\n";
}

çıktı olacak:

9
7
6

1
+ 1; temel olarak bu anahtar kelimeleri kullanan diğer tüm dillerde olduğu gibi.
Karl Knechtel

+ 1; sadece basit bir açıklama ve iyi bir örnek, hamur bile while(--$i)yeni başlayanlar için biraz zor.

@Omeid katılıyorum, bu zor ... ama php for-loop sözdizimi ve bakmak için tembel emin değildi
Hinek

Bu harika bir örnek!
demuro1

1
Harika bir örnek. (E $ $ yankısı. "\ N" sonunda bir noktalı virgül gerekiyor.)
user3563097

16

BREAK:

break işlemi, foreach, while, while veya Switch yapısı için akımın yürütülmesini sonlandırır.

DEVAM ET:

loop, döngü halindeki yapılarda, mevcut döngü yinelemesinin geri kalanını atlamak ve koşul değerlendirmesinde ve ardından bir sonraki yinelemenin başlangıcında yürütmeye devam etmek için kullanılır.

Böylece, ihtiyacınıza bağlı olarak, kodunuzda yürütülmekte olan konumu geçerli yuvalamanın farklı bir seviyesine sıfırlayabilirsiniz.

Ayrıca, bir parça detaylandırma için buraya bakınız .


14

Kayıt için:

PHP'de switch ifadesinin devam etmek için bir döngü yapısı olarak kabul edildiğini unutmayın .


Ben sadece bu "özellik" tarafından ısırıldı. Bir anahtar durumunda keşfedilen şeylere dayalı bir while döngüsüne nasıl devam edebilirim?
MattBianco

1
@MattBianco, continue 2bu durumlarda kullanıyorsunuz.
flaviovs

5

break döngü deyiminden çıkmak için kullanılır, ancak komut dosyasını belirli bir koşulda durdurmaya devam edin ve sonuna kadar döngü döngüsüne devam edin.

for($i=0; $i<10; $i++){
    if($i == 5){
        echo "It reach five<br>";
        continue;
    }
    echo $i . "<br>";
}

echo "<hr>";

for($i=0; $i<10; $i++){
    if($i == 5){
         echo "It reach end<br>";
         break;
    }
    echo $i . "<br>";
}

Umarım size yardımcı olabilir;


4

Break geçerli döngü / kontrol yapısını sonlandırır ve döngü kaç kez daha tekrarlanırsa yapsın sonuna kadar atlar.

Devam, döngünün bir sonraki yinelemesinin başına atlar.


4

'devam' döngü yapılarında mevcut döngü yinelemesinin geri kalanını atlamak ve koşul değerlendirmesinde ve sonra bir sonraki yinelemenin başlangıcında yürütmeye devam etmek için kullanılır.

'break', foreach veya while yapısı için foreach, foreach akımının yürütülmesini sonlandırır.

break, iç içe geçmiş kapalı yapıların kaçının kesileceğini söyleyen isteğe bağlı bir sayısal argümanı kabul eder.

Aşağıdaki bağlantılara göz atın:

http://www.php.net/manual/en/control-structures.break.php

http://www.php.net/manual/en/control-structures.continue.php

Umarım yardımcı olur..


3

break geçerli döngüyü durdurur (veya kaç döngüden kaçacağını söylemek için bir tam sayı iletir).

continue geçerli yinelemeyi durdurur ve bir sonrakini başlatır.


2

breakdöngüden çıkarken continue, hemen döngü sonraki döngüsünü başlatır.


2

Burada aynı şey yazmıyorum. Sadece PHP el kitabından bir değişiklik günlüğü notu.


Devam için değişiklik günlüğü

Version Description

7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.

Mola için değişiklik günlüğü

Version Description

7.0.0   break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.