5. Операторы if, switch, while, for, do while, foreach, continue, break.
Оператор if
Оператор ветвления, проверяет некоторое условие и, в зависимости от результатов, выполняет определенный блок кода. В качестве условий могут использоваться любые операции возвращающие значение типа bool.
if(flag) // проверка истинности
{
// do something
}
Если при несоблюдении условия надо выполнить какой-то код, то к оператору if можно добавить блок else.
if(flag)
{
// do something
} else
{
// do something else
}
Оператор while
Оператор цикла, выполняет блок кода, пока условие принимает значение true. Перед каждым выполнением цикла, выражение while проверяется и может выполняться от нуля(то есть вообше не выполниться) до нескольких раз.
while(flag) // проверка истинности
{
// do something
}
Цикл может быть прерван операторами break, return, throw или goto.
while(сonditionIsTrue) // проверка истинности
{
// do something
if (flag) return; // если условие true цикл прерывается
// continue do something
}
Оператор for
Оператор цикла, выполняет блок кода, пока условие не примет значение false. В каждом операторе определяются секции инициализации, условия и итератора. Они все определяют, сколько раз цикл будет повторяться.
for (initializer; condition; iterator)
{
//body
}
В инициализации задаются начальные условия перед циклом. В условии происходит проверка истинности выражения. В итераторе опеределяется, что происходит после каждой итерации. Цикл так же может быть прерван операторами break, return, throw или goto.
for (int i = 0; i < value; iterator(), i++)
{
//do something
}
void iterator()
{
// do something too
}
Итератор, как и инициализация может содержать несколько выражений, разделенных запятыми, в данном случае выполнялся метод iterator() и значение переменной i инкрементировалось. Все секции в операторе for не являются обязательными. Следующий операторо создает бесконечный цикл.
for ( ; ; )
{
//doing something infinitely
}
Оператор do while
Оператор цикла, в отличии от while проверка условия происходит после выполнения. То есть Оператор выполнится хотя бы один раз.
do
{
//do something
} while(condition);
В любой точке блока do-while можно разорвать цикл с помошью оператора break. Оператор continue позволяет пропустить блок и перейти непосредственно к оператору while. Из цикла так же можно выйти с помощью return, throw или goto.
Оператор foreach
Оператор цикла, который повторяет блок кода для каждого элемента из массива или коллекции, которые реализуют интерфейс IEnumerable или IEnumerator. Однако, его нельзя использовать для изменения массива или коллекции - для этого используется цикл for.
int[] array = new int[] { ... }; //инициализация массива
foreach (int element in array) //проход по каждому элементу
{
//do something with element
}
В любой момент в блоке foreach цикл можно прервать с помощью break, goto, return или throw, или перейти к следующей итерации с помощью continue.
Оператор switch
Оператор ветвления, более продвинутый, чем if, так как позволяет обрабатывать сразу несколько условий. После каждого блока case следует явный выход из swhith путем использования операторов break, goto или return.
int i = ... //переменной i присваивается какое-то значение.
switch(i) // проверка истинности
{
case 0:
//do something
break;
case 1:
case 2:
//do something else
return true;
break;
default:
//do anything
break;
}
Выражение сравнения switch(expr) может быть любым выражением, отличным от null.
Оператор break
Оператор завершает выполнение цикла в котором находится или оператора switch. Управление передается дальше идущему коду.
Оператор сontinue
Оператор передает управление следующей итерации цикла while, do, for или foreach, в котором он находится.