2010-02-23 2 views

답변

0

나에게 몇 가지 질문에 답할 수 있도록 :

  • 왜이 좋은 실례로 간주되어서는 안된다?

  • 코드 가독성이 떨어 집니까?

  • 주기가 느려 집니까?

1

가볍게 사용하면 괜찮지 만 과도하게 사용하면 코드 스파게티가됩니다. breakcontinue은 기본적으로 단지 goto으로 제한되어 있으므로 조금씩 사용하십시오.

+1

goto를 사용하면 앞뒤로 건너 뛰는지 알 수 없습니다. 중단하고 계속해서 어디서 점프하는지 알 수 있습니다. – jab

1

절대적으로 그들은 둘 다 유효한 프로그래밍 구조입니다.

새로 도입 된 GOTO은 좋지 않습니다. (이게 4 월의 바보 농담이었다고 말하면 안되요!)

+0

PHP에'goto'가 있습니다 !!? – Earlz

+5

php.net 페이지에 XKCD 만화가 포함되어 있으면 정말 궁금해 할 것입니다. – Erik

+0

예. 프로그래밍 언어가 이미 비영리적인 이미지를 가지고있을 때 무엇이 ​​필요합니까? * goto *를 추가하십시오. 쳇. –

0

파이썬에서는 무한 루프와 브레이크를 사용하여 가독성을 향상시킵니다. 그래서 네, 올바르게 사용했다면 좋은 이유로 사용하십시오. 일부는 첫 번째 버전에게 abhomination 어려운 찾을

if (!condition1) { 
    some code; 
    some code; 
    if (!condition2) { 
     some code; 
     some code; 
     if (!condition3) { 
     some code; 
     some code; 
     } 
} 

4
do { 
if (condition1) 
    break; 
some code; 
some code; 
if (condition2) 
    break; 
some code; 
some code; 
if (condition3) 
    break; 
some code; 
some code; 
} while (false); 

대 읽고 두 번째 버전을 사랑합니다. 어떤 사람들은 첫 번째 버전을 더 깔끔하고 읽기 쉽다고 생각합니다. 조건의 수가 증가함에 따라 두 번째 버전은 중첩 수준을 따르는 것이 점점 어려워지는 경향이 있으므로 첫 번째 버전을 더 쉽게 따르는 경향이 있습니다. 또한 if (condition) break;if (condition) {some code; break}처럼 조금 더 복잡해지면 do {if .. break; if .. break..;} while(false) 패턴은 등가 적으로 중첩 된 if와 비교하여 훨씬 더 명확 해집니다.

0

PHP (및 반복 루핑)에 대한 설명은 Advanced loops입니다. 작성자가 중단을 계속 삼가고 계속할 수 있지만 n을 중단하고 n을 계속할 수는 없다는 인상을받습니다. :-)

0

5 년 이상 프로그래밍 PHP에서는 switch 문 외부에서 break를 사용하지 않아도되었습니다.

Continue는 반복의 첫 번째 항목이나 마지막 항목을 건너 뛰기 위해 사용되기도하지만 대단히 좋아합니다.

왜 GOTO를 다시 도입 했습니까?즉, (경우 메소드 맥락에서)

if (!empty($var)) 
    return false; 

을 반환을 사용하지 왜이 방법이 훨씬 명확 생각

if (!empty($var)) 
    break; 

에, 부끄러운

질문에 대답하기 위해 그리고 인식 호출한다 내부에서 일어난 일. 인수 오류에 대한 더 나은 사용은 Excecptions를 사용하는 것입니다. Excecptions은 실제로 실행이 실행되는 지점을 중단시킵니다.

1

break 또는 continue을 사용하면 코드를 읽고 이해하기가 쉽습니다. 나는 개인적으로 매우 드물게 사용하며, 다른 구조를 쉽게 사용할 수없는 경우에만 사용합니다. 가장 while 문장의 경우

는, 상기 루프 내부의 값을 변경 한 후 처음에 루프 상태로 부울 변수를 사용하고,에 의해 break 또는 continue A와 동일한 결과를 달성하기 쉽다. 한편

break에 가장 적합한 사용 사례, 내 의견으로는, 당신이 배열 또는 for 또는 foreach 블록과 비슷한을 반복 일부까지 처리 요소에만 관심이있는 경우 자원을 절약하는 것입니다 항목에 도달했습니다. 이 요소에 도달 한 후 break을 사용하면 나머지 요소를 거치지 않고 루프에서 빠져 나와 처리 능력을 절약 할 수 있습니다. 따라서 코드를보기 어렵게 만들지 않고도 코드를보다 효율적으로 사용할 수 있습니다.

물론 break없이 switch 문을 사용하는 것은 사실상 불가능합니다.

중첩 된 구조를 제어해야하는 경우도 있습니다.이 경우 복수 변수를 동시에 조작하는 것보다 break n 또는 continue n을 사용하는 것이 더 간단한 경우가 있습니다. (이 사용 사례는 아마도 가장 논란의 여지가 있지만 ...)

관련 문제