2012-12-03 2 views
0

파이썬에서 continue을 사용하는 것은 나쁜 습관으로 간주됩니까? 중도 실행 기능을 중지하는 것처럼 보이지만 잘못된 상황에서 sys.exit() 또는 goto과 같이 프로그램을 구성하는 것이 일반적으로 "좋지 않은"방법입니다."계속"나쁜 습관이 있습니까?

+3

아니요, 괜찮습니다. – Keith

+1

또한보십시오 http://stackoverflow.com/questions/216359/break-statements-in-the-real-world/216375#216375 – paxdiablo

답변

0

흐름 제어의 사용은 논쟁의 여지가있는 주제입니다.

생각의 학교는 독자가 가정 할 흐름 제어를 숨김으로써 코드를 모호하게한다고 생각합니다. 선형적인 것입니다.

또 다른 생각은 대안이 복잡한 논리 (추가 플래그와 복잡한 루프 조건) 인 경우 정당하다고 생각합니다.

가장 좋은 방법은 코드를보고 결정하는 것입니다. 흐름 제어를 계속 숨기는 것과 같은 것을 사용하겠습니까? 당신의 코드가 그것없이 깨끗하게 표현 될 수 있습니까?

제 생각에는 그렇지 않을 이유가 없다면 계속하고 그 종족을 피하는 것이 좋습니다.

+1

'예를 들어, 초기 출구가 필요한 루프의 경우를 생각해보십시오. 제어 흐름 중단이 없다면 루프의 플래그 변수로 작업해야 루프를 복잡하게 만들 수 있습니다. '같은 인스턴스 이외의 다른 부분을 사용하는 경우는 생각할 수 없습니다. 마찬가지로 루프의 현재 반복을 끝내고 다음 루프를 시작하기 전에는 계속 사용할 장소를 생각할 수 없습니다. 그러한 경우는 계속해서 왜 존재하고 끊어 지는가입니다. – Matt

+0

물론,하지만 그들은 학대 당할 수 있습니다. 루프 컨트롤이 본문에있는 무한 루프를 실행하는 코드를 보았습니다. 흐름 제어가 중단되었습니다. 루프 내에서 if 문으로 쉽게 표현할 수있는 논리가있는 루프가 음수 테스트에 의존하여 계속 진행되는 경우도 있습니다. – RonaldBarzell

+0

예, 물론 학대 당할 수도 있습니다. 모든 것이 학대 당할 수 있습니다. 그렇다고해서 모두 피해야한다는 의미는 아닙니다 (첫 번째 문장의 내용입니다 :'일반적으로 흐름 제어에서 "중단"을 초래할 수있는 코드는 모두 나쁜 행동으로 간주됩니다). – Matt

0

개인적으로 파이썬에서 계속 사용하면 좋습니다. 파이썬에서 if/else 문 유형 조건에 넣으면 계속 작동합니다.

2

구조화 된 프로그래밍의 기본은 잘 정의 된 진입 점과 종료점을 하나의 방법으로 - 이상적으로는 하나씩 정의하는 것입니다. 그러나 이것은 어렵고 빠른 규칙이 아니며 여러 종료점을 갖는 것이 적절한 경우가 많습니다. 나는 코드를 살펴보고, 여전히 계속되는 '계속'이 없으면 그것을 할 수있는 다른 방법이 있는지 생각해보고, 그렇지 않다면 '계속'을 사용하는 것이 올바른 접근 방법이 될 것이라고 생각한다.

관련 문제