2017-12-22 2 views
-2

하나 이상의 조건을 for 루프에 넣고 있습니까? 예를 들어둘 이상의 조건을 넣을 때 For 루프에 제한이 있습니까?

:

그래서
bool b = true; 
for (int i = 0; i < 100 && b; i++) 
    b = changeB(i); //Imagine this does something with b 

나는 for 루프에서 조건의 종류를 넣어 정확하지 있다고 말했다. 특별한 이유가 있습니까? 아니면 잘 했니?

+9

이것은 완전히 유효합니다. 어디에서 나쁜 행동으로 간주되는 인상을 받았습니까? – Fureeish

+0

* for 루프에 두 개 이상의 조건을 넣지 않는 것이 좋은 이유 * - for 루프에서 조건을 확인하지 않은 경우 게시 한 코드를 어떻게 변경하겠습니까? 루프는 정확히 같은 방식으로 동작합니까? 그것이 무엇이든간에, 게시 된 코드보다 "좋아"보이나요? – PaulMcKenzie

+2

누군가가 코드를 처음 보았을 때 코드의 논리적 의도가 분명하다고 생각합니까? 그렇다면 코드가 좋을 것이므로 걱정할 필요가 없습니다. :) – George

답변

1

왜 for 루프에 하나 이상의 조건을 넣지 않아도 괜찮습니까?

괜찮습니다.

그래서 for 루프에 이런 종류의 조건을 넣는 것은 올바르지 않다고합니다. 특별한 이유가 있습니까?

나는 그 사람이 자신의 견해에 대한 구체적인 이유를 알고 있다고 생각합니다.

이전 조건보다 훨씬 복잡한 조건식 시퀀스를 상상해보십시오. 조건이 너무 복잡하여 따라갈 수없는 지점이있을 것입니다. 어느 시점에서 표현식이 너무 복잡하여 루프 상태에서 읽을 수 없게되는 것은 매우 주관적입니다.


흥미롭게도 MISRA 가이드 라인 - 명시 적으로 "기타"루프 제어 변수의 사용을 허용 - 가 주관적으로 바보와 제한적인 일부.

+0

예, 아마 가독성 때문에 대답을 주셔서 감사합니다. – Manugs

0

명확한 변수 이름을 사용하는 것이 중요하지만 가장 중요합니다. B는 예를 들어 설명하기에 충분한 이름이 아닙니다.

+0

예, 예, 자신을 설명하는 바보 같은 예였습니다. – Manugs

관련 문제