아직 아무도 생각해 오지 않은 것 같은 또 다른 대답이 있습니다. for
시퀀스를 반복해야하는 경우 루프를 사용해야합니다 . !=
루프의 종료 조건을 나타내는 가장 간결한 방법은 사용 입니다. 그러나 덜 제한적인 연산자를 사용하는 것은 매우 일반적인 방어 프로그래밍 관용구입니다. 정수의 경우 중요하지 않습니다-더 구체적인 예가 없으면 개인적인 선택 일뿐입니다. !=
다른 사람들이 언급 한 이유로 사용하려는 반복자가있는 콜렉션을 반복합니다 . float
또는의 시퀀스를 고려 double
하면 !=
모든 비용 을 피하려고합니다 .
내가 지적하고 싶은 for
것은 시퀀스를 반복해야 할 때 사용됩니다. 생성 된 시퀀스에는 시작 지점, 간격 및 종료 조건이 있습니다. 이들은 for
진술 내에 간결하게 지정되어 있습니다. (1)의 단계 부분을 포함하지 for
않거나 (2) true
보호 조건 과 같은 것을 지정 하면 for
루프를 사용해서는 안됩니다 !
while
루프는 특정 조건이 충족되는 동안 처리를 계속하는 데 사용됩니다. 시퀀스를 처리하지 않으면 while
대신 루프를 원할 것입니다. 가드 조건 인수는 여기에서 비슷하지만 a while
와 for
루프 사이의 결정은 매우 의식적인 것이어야합니다. while
IMO C ++ 서클 이해하에 루프이다.
항목 모음 (가장 일반적인 for
루프 사용법)을 처리하는 경우 보다 전문화 된 방법을 사용해야합니다. 불행히도 std::for_each
여러 가지 이유로 C ++에서 상당히 고통 스럽습니다. 많은 경우에 for
독립형 기능 (약간 고통 스럽지만) 으로 루프 본체를 분리하면 훨씬 더 깨끗한 솔루션이됩니다. 컬렉션을 작업 할 때, 고려 std::for_each
, std::transform
또는 std::accumulate
. 이러한 방식으로 표현할 때 많은 알고리즘의 구현이 간결하고 명확 해집니다. 루프 본문을 별도의 함수 / 방법으로 분리하면 알고리즘, 입력 요구 사항 및 결과에 집중하게됩니다.
자바, 파이썬, 루비, 또는 사용하는 경우 C + +0을 , 당신은 적절한 수집 이용해야 foreach는 루프를. C ++ 컴파일러가이 기능을 구현함에 따라 for
이러한 유형의 토론과 마찬가지로 많은 루프가 사라집니다.
int i = 10; while(i --> 0) { /* stuff */ }