while (age == 5); // empty statement
эквивалентно
while (age == 5) { } // empty block
Обновление: Даже если нет тела для выполнения, это не означает, что цикл завершается. Вместо этого он будет просто циклически повторяться по условию (, которое может иметь или полагаться на побочные эффекты ), пока не будет выполнено. Вот эквивалентная форма с goto
:
loop:
if (age == 5)
goto loop;
Эта конструкция иногда используется как занятый цикл , ожидающий изменения флага в поточном коде. (Точное использование и действительность зависит от языка, алгоритма и среды выполнения.)
Я считаю использование ;
для "пустого блока" пустого оператора и сомнительной конструкции для использования из-за таких проблем:
while (age == 5); {
Console.WriteLine("I hate debugging");
}
(я видел эту ошибку несколько раз раньше, когда был добавлен новый код.)
Удачного кодирования.