Ответ 1
Ваш первый случай (для пустых выражений) представляет собой цикл бесконечный, а второй (с пустым телом оператора for) представляет собой цикл пустой
Это такая вещь:
for(;;)
{
statements;
}
Или это так:
for(initialisation;condition;updation)
{
}
Я ищу ответы со ссылками на различные источники.
Ваш первый случай (для пустых выражений) представляет собой цикл бесконечный, а второй (с пустым телом оператора for) представляет собой цикл пустой
В моей среде это выглядит так:
for(;;) { statements; }
бесконечный цикл
for(initialisation;condition;updation) { }
пустой цикл
Ответ зависит от контекста.
Если вы имеете в виду пустой цикл для, то
for(;;)
{
statements;
}
- такая вещь.
Хотя, то же самое можно достичь с помощью цикла while:
while(true)
{
statements;
}
и это не "пустой" цикл. Оба из них - бесконечные петли, которые вы должны вырваться из break
внутри вашего цикла.
С другой стороны,
for(initialisation;condition;updation)
{
}
это "пустой" цикл, который практически ничего не делает, за исключением, возможно, обновления некоторых переменных, которые могут быть определены до самого цикла.
Он равен этому:
while (true) {
statements;
}
Infinite for 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;
}
for(;;)
{
statements;
}
- это бесконечный цикл, потому что есть избыточное значение/значение Grabage, которое делает цикл истинным
for(initialisation;condition;updation)
{
body;
}
это просто синтаксис для цикла for (для образовательных целей)