Операторы итерации
Операторы итерации — это блоки кода, выполняющие инструкции в цикле.
Существует 4 типа операторов итерации
- Для
- Для каждого
- Пока
- Делать пока
Для
Цикл for
продолжает выполняться до тех пор, пока не будет выполнено определенное условие.
for(<initializer>; <condition>; <iterator>)
{
// Code to be executed
}
Инициализатор
Создает и инициализирует переменную, которая будет использоваться внутри for
цикла. Доступ к этой переменной извне невозможен.
Условие
Логическое выражение, которое должно возвращать либо истину, либо ложь. Цикл будет выполняться до тех пор, пока это выражение не вернет значение false
.
Итератор
Определяет инкрементное или декрементное значение переменной Initializer.
Пример
Итератор добавляет значение к i в каждом цикле.
for(int i = 0; i < 10; i++)
{
Console.WriteLine("Value of i: {0}", i);
}
Итератор удаляет значение i
каждого цикла.
for(int i = 10; i > 10; i--)
{
Console.WriteLine("Value of i: {0}", i);
}
Инициализатор может быть объявлен вне цикла for.
В этом сценарии доступ к i
переменной возможен вне цикла.
int i = 0;
for(; i < 10; i++)
{
Console.WriteLine("Value of i: {0}", i);
}
Итератором можно управлять внутри цикла
for(int i = 0; i < 10; )
{
Console.WriteLine("Value of i: {0}", i);
i++;
}
Итератор управляется внутри цикла, а переменная инициализатора объявлена вне цикла for.
int i = 0
for(; i < 10; )
{
Console.WriteLine("Value of i: {0}", i);
i++;
}
Инициализатор, условие и итератор управляются вне круглых скобок.
int i = 0;
for(;;)
{
if(i < 10)
{
Console.WriteLine("Value of i: {0}", i);
i++;
}
else
break; // force exit from loop
}
Работа с массивами
int[] array = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for(int i = 0; i < array.Count - 1; i ++)
{
int currentItem = array[i];
Console.WriteLine("Current value of item inside array is: " + currentItem);
}
В приведенном выше примере мы используем .Count
свойство массива, чтобы узнать, сколько элементов находится внутри него.
Поскольку индекс массива начинается с 0, мы используем удаление одной итерации с - 1
, без него цикл for будет искать элемент, который не существует в массиве, и выдаст ошибку.
Чтобы лучше проиллюстрировать это
int[] array = new [] { 1, 2, 3 };
Console.WriteLine(array[0]); // Outputs 1
Console.WriteLine(array[1]); // Outputs 2
Console.WriteLine(array[2]); // Outputs 3
Для каждого
Цикл foreach
перебирает каждый элемент коллекции.
Должен DataType
соответствовать типу коллекции, которую вы повторяете.
foreach(<DataType> <variableName> in <collection)
{
// code
}
Пример
int[] array = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
foreach(int i in array)
{
Console.WriteLine("Current value of i is: " + i);
}
Пока
В while
цикле блок кода будет выполняться до тех пор, пока условие не вернет значение true.
while(<condition>)
{
// Code
}
Пример
Выполняйте инструкцию, пока не i
станет меньше 1
int i = 0; // initializer
while(i < 10) // condition
{
Console.WriteLine("Value of i: " + i);
i++; // iterator
}
Использование булевой переменной
int i = 0;
bool isBiggerThan10 = false;
while(isBiggerThan10)
{
Console.WriteLine("Value of i: " + i);
i++; // iterator
isBiggerThan10 = i > 10; // Checks if i is bigger than 10 and assing the result to the variable.
}
Делать пока
Разница между while
и do...while
заключается в том, while
что условие проверяется перед выполнением и do...while
всегда выполняется хотя бы один раз.
do
{
// Code
} while(<condition>)
Примеры
int i = 0;
do
{
Console.WriteLine("i = {0}", i);
i++;
} while (i < 10);
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.