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

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

Ряд интересных разновидностей цикла for получается в том случае, если оставить пустыми отдельные части определения цикла. В C# допускается оставлять пустыми любые или же все части инициализации, условия и итерации в операторе цикла for. В качестве примера рассмотрим такую программу:

// Отдельные части цикла for могут оставаться пустыми.

using System;

class Empty {
   static void Main() {
      int i;

      for (i = 0; i < 10; ) {
         Console.WriteLine("Проход №" + i) ;
         i++; // инкрементировать переменную управления циклом
      }
   }
}


В данном примере итерационное выражение в определении цикла for оказывается пустым, т.е. оно вообще отсутствует. Вместо этого переменная i, управляющая циклом, инкрементируется в теле самого цикла. Это означает, что всякий раз, когда цикл повторяется, значение переменной i проверяется на равенство числу 10, но никаких других действий при этом не происходит. А поскольку переменная i инкрементируется в теле цикла, то сйм цикл выполняется обычным образом, выводя приведенный ниже результат.
Проход №0
Проход №1
Проход №2
Проход №3
Проход №4
Проход №5
Проход №6
Проход №7
Проход №8
Проход №9
В следующем примере программы из определения цикла for исключена инициализирующая часть.

// Исключить еще одну часть из определения цикла for.

using System;

class Empty2 {
   static void Main() {
      int i;

      i = 0; // исключить инициализацию из определения цикла
      for (; i < 10; ) {
         Console.WriteLine("Проход №" + i);
         i++; // инкрементировать переменную управления циклом
      }
   }
}


В данном примере переменная i инициализируется перед началом цикла, а не в самом цикле for. Как правило, переменная управления циклом инициализируется в цикле for. Выведение инициализирующей части за пределы цикла обычно делается лишь в том случае, если первоначальное значение данной переменной получается в результате сложного процесса, который нецелесообразно вводить в операторе цикла for.