English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Уровень 1

C# Уровень 2

C# ООП (面向对象)

Цикл while в C#

C# предоставляет цикл while, который повторно выполняет блок кода до тех пор, пока указанное условие не вернет false.

Синтаксис:

while(condition)
{  
  // Блок кода
}

Цикл while начинается с ключевого слова while и должен содержать в квадратных скобках布尔ское условие выражения, которое возвращает true или false. Он выполняет блок кода до тех пор, пока指定的 условие выражения не вернет false.

Этот цикл for содержит часть инициализации и часть инкремента/декремента. При использовании цикла while инициализация должна быть завершена до начала цикла, а инкремент или декремент должны выполняться внутри цикла.

int i = 0; // Инициализация
while (i < 10) // Условие
{
    Console.WriteLine("i = {0}", i);
    i++; // Увеличение
}
Вывод:
i = 0 
i = 1 
i = 2 
i = 3 
i = 4 
i = 5 
i = 6 
i = 7 
i = 8 
i = 9

В приведенном выше цикле while содержится выражение i < 10. В цикле while используется i++ для увеличения значения i до 1. Когда значение i равно 10 и условие i < 10 возвращает false, выполняется приведенный выше цикл while.

Используйте ключевые слова break или return для выхода из цикла while при некоторых условиях, как показано ниже.

int i = 0;
while (true)
{
    Console.WriteLine("i = {0}", i);
    i++;
    if (i > 10)
        break;
}

Убедитесь, что результат вычисления условия выражения равен false, или退出 while-цикл при некоторых условиях, чтобы избежать бесконечного цикла. В следующем цикле отсутствует подходящее условие или прерывание цикла, что делает его бесконечным циклом while.

int i = 0;
while (i > 0)
{
    Console.WriteLine("i = {0}", i);
    i++;
}

Вложенные циклы while

C# позволяет использовать цикл while в другом цикле while, как показано ниже. Однако, не рекомендуется использовать вложенные циклы while, так как это трудно отладить и поддерживать.

int i = 0, j = 1;
while (i < 2)
{
    Console.WriteLine("i = {0}", i);
    i++;
    while (j < 2)
    {
        Console.WriteLine("j = {0}", j);
        j++;
    }
}
Вывод:
i = 0 
j = 1 
i = 1