Версия 2 сломается перед запуском //other code
. Версия 1 не будет проверяться до начала следующей итерации.
bool noErrors = true;
while(noErrors)
{
noErrors = ValidateControl(txtName);
// other code
}
Проверяет перед каждой итерацией.
bool noErrors = true;
do
{
noErrors = ValidateControl(txtName);
// other code
} while(noErrors);
Проверяет после каждой итерации.
Ни одна проверка во время итерации. Как заявили другие авторы, следующий код упрощает пример, но заставляет меня задать вопрос, может ли действительность txtName
измениться во время выполнения цикла? Будут ли некоторые другие ограничивающие условия более полезными?
while (ValidateControl(txtName))
{
// other code
}
Если срок действия txtName
не изменится, рассмотрим,
if (ValidateControl(txtName))
{
while(/*Some other condition*/)
{
// other code
}
}