2013-04-16 12 views
2

최근 튜토리얼 ++은 C를 통과하는 동안이처럼 보였다 그 for 루프가 발생? 왜 이것을 사용하면 while(1)이 될까요?for (;;)이 무한 루프입니까?</p> <pre><code>for (;;){ //Do stuff } </code></pre> <p>이 무한 루프 :

+3

예. 좋아하는 것을 사용하십시오. – jrok

+0

예. 'while (1)'이나'while (true)'대신에 사용할 이유가 없습니다. 그러나 내 취향에 따라 : for (;;)는 추악합니다. –

+4

'for (;;)'은 분명히 더 나은 스타일입니다. – john

답변

8

예, 무한합니다. 전통적으로 컴파일러는 while(1)을 사용할 때 경고를 표시하지만 for(;;)을 사용할 때는 경고를 생성하지 않습니다. 이것이 아직도 사실인지 나는 모른다.

+0

MSVC는 경고 수준이 여전히 높습니다 –

3

무한 루프입니까?

예.

while(1) 대신 왜 이것을 사용합니까?

(불량, IMO)의 맛. 그건 그렇고, 실제로 무한 루프를 만들어야한다면 while (true)으로 갈 것입니다.

+0

실제 프로그래머는 이러한 종류의 루프에 goto를 사용하고 다른 goto (또는 return)를 사용하여 종료합니다. :) –

+2

@LeeMeador : 실제 프로그래머는 'goto'를 사용하지 않습니다.) –

+3

+1 for wisdom. 유머 감각이 없어지면 -1. –

5

무한 루프입니다. 보다 정확하게는 for의 조건이 비어 있으면 true으로 간주됩니다. while (true)for (;;)의 경우 : 역사적으로 for (;;)은 관용적 인 형식 (Kernighan 및 Ritchie에서 사용됨)이었는데, 초기 C에는 부울이 없었기 때문에 부분적으로는 아마도 부분적이었습니다. while (1)을 사용하면 어디에서나 코드 검토를 통과하지 못합니다. 부울을 사용하면 while (true)for (;;)보다 직관적 인 것으로 보이지만 while (1)은 혼란 스럽습니다. 그러나 프리 부울 시간에는 모두 true 또는 TRUE 또는 그 중 일부에 대해 #define이 있었기 때문에 약한 주장입니다. 결국 Kernighan과 Ritchie에게서 배운 나 같은 오래된 C 프로그래머라면 본능적으로 for (;;)을 사용하면됩니다. 그렇지 않으면 ... 아마도 C++을 어디서 누구로부터 배웠는지에 달려 있습니다.

물론 직장에있을 때 집회 규칙을 따르십시오.

관련 문제