반응형
C와 C++에서 "비어있는 루프"라는 용어는 정확히 무엇을 가리킵니다.
이런 일입니까?
for(;;)
{
statements;
}
아니면 이것입니까?
for(initialisation;condition;updation)
{
}
저는 다양한 자료를 참고하여 답을 찾고 있습니다.
첫 번째 경우(빈 식의 경우)는 무한 루프이고 두 번째 경우(빈 식의 본문의 경우)는 빈 루프입니다.
제 환경에서는 다음과 같습니다.
for(;;) { statements; }
끝없는 고리
for(initialisation;condition;updation) { }
빈 고리
답변은 상황에 따라 달라집니다.
루프를 위한 빈 공간을 의미한다면,
for(;;)
{
statements;
}
그런 것입니다.
비록 잠시 동안의 루프를 통해서도 동일한 것을 달성할 수 있습니다.
while(true)
{
statements;
}
그리고 이건 빈 고리가 아닙니다이 두 가지 모두 사용에서 벗어나야 하는 무한 루프입니다.break
네 고리 안에.
반면에.
for(initialisation;condition;updation)
{
}
이는 기본적으로 루프 자체 이전에 정의될 수 있는 일부 변수를 업데이트하는 것을 제외하고는 아무것도 하지 않는 "빈" 루프입니다.
빈 루프(empty loop)는 빈 몸체를 갖는 루프입니다.
for(int i = 0; i < 10; ++i) {}
while(cin) {}
(여기 있는 두 번째 예도 마찬가지로 끝이 없습니다.)
함수가 원하는 부작용을 일으켜 성공을 반환하는 경우, 실패할 때까지 반복해야 하는 경우, 예를 들어 파일의 마지막 줄을 읽는 경우 등 유용합니다.
std::string getLastLine(std::string filename)
{
std::ifstream in(filename.c_str());
if(!in)
return "";
std::string line;
while(std::getline(in, line)); // empty loop, the operation returns the condition
return line;
}
다음과 같습니다.
while (true) {
statements;
}
루프에 대한 무한은 다른 것이 멈출 때까지 작동하는 루프입니다.
for(;;)
{
statements;
}
루프를 참으로 만드는 중복 값/Grabage 값이 있기 때문에 무한 루프입니다.
for(initialisation;condition;updation)
{
body;
}
는 단지 루프를 위한 구문일 뿐입니다(교육적 목적의 사용).
언급URL : https://stackoverflow.com/questions/4592166/what-does-the-term-empty-loop-refer-to-exactly-in-c-and-c
반응형
'programing' 카테고리의 다른 글
발신자 기능의 이름은 어떻게 알 수 있습니까? (0) | 2023.10.06 |
---|---|
사전 증분 연산자가 r값을 C로 제공하는 이유는 무엇입니까? (0) | 2023.10.06 |
Slick/Tomcat/MariaDB Galera 클러스터의 잘못된 "데이터베이스가 선택되지 않음" 오류 (0) | 2023.10.06 |
5초마다 AJAX jQuery 새로 고침 div (0) | 2023.10.01 |
제출 양식에서 생성된 URL을 JavaScript로 가져옵니다. (0) | 2023.10.01 |