PHP에서 중단과 계속의 차이점은 무엇입니까?


답변:


517

break루프를 완전히 끝내고 continue현재 반복을 바로 가기 만하고 다음 반복으로 넘어갑니다.

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

이것은 다음과 같이 사용됩니다 :

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

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

56
이 기능을 잘못 사용하면 다음과 같은 결과가 발생합니다. flickr.com/photos/24973901@N04/2762458387
neokio

7
이 답변을 사랑하십시오! Yoda 조건에 대한 WP.org의 권고 사항을 상기시켜주십시오 : make.wordpress.org/core/handbook/coding-standards/php/…
Bob Gregor

4
이 답변 후 7 년이 지났지 만 말할 가치가 있습니다. 같이 PHP 문서 V4에서 breakcontinue동일하다 switch. 둘 다 스위치에서 나옵니다. 필요한 경우 외부 루프를 빠져 나갑니다 continue 2.
Amin.Qarabaqi


@ deceze, 코드가있는이 예제는 좋지 않습니다. 어디에도 사용되지 않은 변수를 할당합니다. 제안 된 수정 사항을 더 읽기 쉽게했습니다.
Tajni

49

break는 현재 루프를 종료하고 루프의 다음 사이클로 즉시 시작합니다.

예:

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

출력합니다 :

9
7
6

1
+1; 기본적으로 이러한 키워드를 사용하는 다른 모든 언어와 동일합니다.
Karl Knechtel

+1; 간단한 설명과 좋은 예, 반죽조차도 while(--$i)초보자에게는 약간 까다 롭습니다.

@Omeid 나는 그것이 까다 롭다는 것에 동의하지만 ... 나는 PHP의 for-loop 구문을 확신하지 못하고 그것을 찾는 게으른 게 확실하지 않다
Hinek

이것은 좋은 예입니다!
demuro1

1
좋은 예입니다. echo $ i. "\ n"끝에는 세미 컬럼이 필요합니다.
user3563097

16

단절:

break는 for-while 또는 스위치 구조에 대한 전류 실행을 종료합니다.

계속하다:

continue는 루핑 구조 내에서 사용되어 나머지 현재 루프 반복을 건너 뛰고 조건 평가에서 실행을 계속 한 후 다음 반복의 시작을 계속합니다.

따라서 필요에 따라 코드에서 현재 실행중인 위치를 다른 수준의 현재 중첩으로 재설정 할 수 있습니다.

또한, 예술적인 디테일에 대해서는 여기 를 참조 하십시오.


14

기록의 경우 :

PHP에서 switch 문은 continue 목적으로 루핑 구조 로 간주 됩니다 .


나는이 "기능"에 물렸다. 스위치 케이스에서 발견 된 것을 기반으로 while 루프를 계속하려면 어떻게해야합니까?
MattBianco

1
@MattBianco, continue 2그런 경우에 사용합니다.
flaviovs

5

루프 문에서 나가는 데 사용되지만 특정 조건에서 스크립트를 중지 한 다음 끝에 도달 할 때까지 루프 문을 계속하십시오.

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>";
}

그것이 당신을 도울 수 있기를 바랍니다.


4

Break는 루프가 반복되는 횟수에 관계없이 현재 루프 / 제어 구조를 끝내고 그 끝으로 건너 뜁니다.

계속은 루프의 다음 반복 시작으로 건너 뜁니다.


4

'continue'는 루핑 구조 내에서 사용되어 나머지 현재 루프 반복을 건너 뛰고 조건 평가에서 실행을 계속 한 후 다음 반복의 시작을 계속합니다.

'break'는 for-while 또는 스위치 구조에 대한 전류 실행을 종료합니다.

break는 중첩 엔 클로징 구조가 몇 개나 나올지를 알려주는 선택적 숫자 인수를 허용합니다.

다음 링크를 확인하십시오.

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

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

도움이 되길 바랍니다 ..


3

break 현재 루프를 중지합니다 (또는 정수를 전달하여 몇 개의 루프에서 벗어날 지 알려줍니다).

continue 현재 반복을 중지하고 다음 반복을 시작합니다.


2

break루프를 종료하고 루프 continue의 다음 사이클을 즉시 시작합니다.


2

나는 여기에 같은 것을 쓰지 않습니다. PHP 매뉴얼의 변경 사항 노트.


계속을위한 변경 로그

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.

휴식을위한 변경 내역

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.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.