Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Оператор цикла while C# Полное руководство Герберт Шилдт

Оператор цикла while C# Полное руководство Герберт Шилдт

Еще одним оператором цикла в C# является оператор while. Ниже приведена общая форма этого оператора.
   while (условие) оператор;
где оператор — это единственный оператор или же блок операторов, а условие означает конкретное условие управления циклом и может быть любым логическим выражением. В этом цикле оператор выполняется до тех пор, пока условие истинно. Как только условие становится ложным, управление программой передается строке кода, следующей непосредственно после цикла.
Ниже приведен простой пример программы, в которой цикл while используется для вычисления порядка величины целого числа.

// Вычислить порядок величины целого числа.

using System;

class WhileDemo {
   static void Main() {
      int num;
      int mag;

      num = 435679;
      mag = 0;

      Console.WriteLine("Число: " + num);

      while(num >0) {
         mag++;
         num = num / 10;  
      };

      Console.WriteLine("Порядок величины: " + mag) ;
   }
}


Выполнение этой программы дает следующий результат:
   Число: 435679
   Порядок величины: 6

Приведенный выше цикл while действует следующим образом. Сначала проверяется значение переменной num. Если оно больше нуля, то переменная mag, выполняющая роль счетчика порядка величины, инкрементируется, а значение переменной num делится на 10. Цикл повторяется до тех пор, пока значение переменной num остается больше нуля. Как только оно окажется равным нулю, цикл завершается, а в переменной mag остается порядок величины первоначального числового значения.
Как и в цикле for, в цикле while проверяется условное выражение, указываемое в самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самим циклом. Данное свойство цикла while демонстрируется в следующем примере программы, где вычисляются целые степени числа 2 от 0 до 9.

// Вычислить целые степени числа 2.

using System;

class Power {
   static void Main() {
      int e;
      int result;

      for (int i=0; i < 10; i++) {
         result = 1;
     e = i;

         while(e > 0) {
        result *= 2;
        e--;
         }

         Console .WriteLine ("2 в степени 11 + i + 11 равно 11 + result);
      }
   }
}


Результат выполнения этой программы приведен ниже.
2 в степени 0 равно 1
2 в степени 1 равно 2
2 в степени 2 равно 4
2 в степени 3 равно 8
2 в степени 4 равно 16
2 в степени 5 равно 32
2 в степени б равно 64
2 в степени 7 равно 128
2 в степени 8 равно 256
2 в степени 9 равно 512
Обратите внимание на то, что цикл while выполняется только в том случае, если значение переменной е больше нуля. А когда оно равно нулю, как это имеет место на первом шаге цикла for, цикл while пропускается.