"for(;;)"는 무엇을 의미합니까?
C/C++에서 다음은 무엇을 의미합니까?
for(;;){
...
}
무한 루프입니다. 이는 다음과 같습니다.while(true)
종료 조건이 제공되지 않으면 조건은 기본적으로 false로 설정됩니다(즉, 루프가 종료되지 않음).
C와 C++ (그리고 다른 많은 언어들에서도)에서,for
루프에는 세 개의 섹션이 있습니다.
- 루프가 시작되기 전에 실행되는 사전 루프 섹션.
- 사실이지만 루프 본문을 실행하는 반복 조건 섹션.
- 루프 본체의 각 반복 후에 실행되는 사후 처리 섹션.
예:
for (i = 1, accum = 0; i <= 10; i++)
accum += i;
1부터 10까지의 숫자를 합산합니다.
대략 다음과 같습니다.
i = 1;
accum = 0;
while (i <= 10) {
accum += i;
i++;
}
단, 의 섹션이 필요한 것은 없습니다.for
문에는 실제로 모든 것이 포함되어 있으며, 반복 조건이 누락된 경우 이는 사실로 간주됩니다.
그래서 그for(;;)
루프는 기본적으로 다음을 의미합니다.
- 루프 설정을 수행하지 않습니다.
- 영원히 반복(반복, 반환 등에도 불구하고); 그리고.
- 사후 처리를 수행하지 마십시오.
즉, 무한 루프입니다.
일부가 될 때까지 루프break
,exit
,throw
루프 내부의 등문이 실행됩니다.기본적으로, 당신은 생각할 수 있습니다.for
루프는 다음으로 구성됩니다.
for (setup; test; advance)
...
"테스트"가 비어 있으면 다음과 같이 간주됩니다.true
루프가 계속 작동합니다.빈 "설정"과 "고급"은 아무 것도 하지 않습니다.
다음이 있을 때까지 계속되는 무한 루프break
,exit
또는goto
진술.
이 대답이 두 구성이 동등하다는 것을 시사하더라도, 두 구성 사이에는 미묘한 차이가 있습니다.for(;;)
그리고.while(1)
(둘 다 무한 루프를 생성함) C 언어(그리고 아마도 컴파일러에 의존함).
일부 컴파일러(예: Windriver DIABData)는 사용할 때 "조건은 항상 참입니다"에 대해 불평합니다.while(1)
.
로 변경for(;;)
를 사용하면 경고를 제거할 수 있습니다. 아마도 후자의 표현식이 의미적으로 더 강하여 의도적으로 무한 루프를 생성할 수 있고 "항상 참" 조건이 전혀 없기 때문일 것입니다(그리고 쓰기가 더 짧습니다).
반면에 C++ 언어는 Adrian이 코멘트에서 언급한 것처럼 두 구조 모두에 대해 차이를 보이지 않습니다.
C++ 표준은 누락된 조건이 암시적으로while
와 동등한 조항while(true)
그리고.for ( for-init-statement condition opt ; expression opt )
는 진은다과같다니습음술다에 합니다.{ for-init-statement while ( condition ) { statement expression ; } }
언급URL : https://stackoverflow.com/questions/4894120/what-does-for-mean
'programing' 카테고리의 다른 글
Multipart POST 요청에 대한 TestRestTemplate와의 통합 테스트에서 400을 반환합니다. (0) | 2023.07.08 |
---|---|
repo를 가져온 후 생성된 원격 분기에 대해 git-svn에 어떻게 알립니까? (0) | 2023.07.08 |
gcc가 사용하지 않는 정적 라이브러리를 연결하도록 강제하는 방법 (0) | 2023.07.08 |
워드프레스에서 레이저페이 결제 게이트웨이를 통합하는 방법 (0) | 2023.07.03 |
Mongoose - 그룹화 및 채우기 방법 (0) | 2023.07.03 |