C# → Циклы

Оператор if может иметь конструкцию:

long x = 10;
if (x is byte) {Console.WriteLine("x имеет тип byte"); }
else if (x is short) {Console.WriteLine("x имеет тип short");  }
else if (x is long) {Console.WriteLine("x имеет тип long"); }
else {Console.WriteLine("x имеет не определённый тип или object"); }

Цикл же позволяет многократно повторять одну и ту же последовательность команд (тело цикла) и прерывать действие цикла при выполнении некоторого условия.

Например, в случае если необходимо проводить итерации по элементам массива то часто используют цикл for (о нём ниже).

Пример цикла for:

for (int i = 0; i < 10; i++)    
{
Console.Write("Введите слово: ");
string s = Console.ReadLine();
if (s == "end")  { break; }
Console.WriteLine("Вы ввели: " + s);  
}

Цикл while выполняет оператор или блок операторов, пока определенное выражение не примет значение false.

n = 0;
while (n < 6) 
{
Console.WriteLine("Значение n = {0}", n);
n++;
}

Цикл do .. while выполнит блок операторов как минимум один раз, а затем повторит выполнение цикла до тех пор, пока условное выражение не возвратит значение false.

n = 12;
do {
Console.WriteLine("Значение n = {0}", n);
n++;
} while (n < 6);

В данном примере тело цикла выполнится — но только один раз.

Цикл foreach позволяет производить итерацию по каждому объекту в контейнерном классе, поддерживающем интерфейс IEnumerable. К контейнерным классам относятся массивы, классы коллекций (System.Collection) и определенные пользователем классы коллекций.

Пример цикла foreach:

int[]  Ints = { 1, 2, 3 };
foreach (int temp in Ints) 
{
Console.WriteLine(temp);  
}

Объекты в цикле foreach доступны только для чтения! Значение объекта в коллекции изменять нельзя! (следующий код вызовет ошибку):

temp++; // объекты в цикле foreach только для чтения!

Оператор goto позволяет передать управление строке программы, отмеченной меткой.

goto myLabel;
Console.WriteLine("Эта строка не будет выполнена");
myLabel:
Console.WriteLine("Выполнение будет продолжено от сюда");

Нельзя передать управление в блок кода, например в цикл for, нельзя передать управление за пределы класса и нельзя выйти из блока finaly.

Оператор break можно использовать для выхода из цикла for, foreach, while, do..while.

Оператор continue прерывает только текущую итерацию, т.е. выполнение будет продолжено со следующей итерации цикла, а не выйдет из цикла.

Применение оператора using гарантирует, что объекты интенсивно использующие ресурсы, будут освобождены сразу по завершению работы с ними.

using( объект )
{
    // код использующий объект
}

Здесь объект – экземпляр класса, который реализует интерфейс IDisposable. Все классы, реализующие IDisposable объязаны реализовать метод Dispose, который служит для освобождения ресурсов, используемых объектом. Метод Dispose вызывается сразу по завершении блока using.Related: fenty beauty annual report 2020, kate greenaway husband covid, reed jobs bristol, chicago police overtime schedule 2021, parking london palladium, fox theater foxwoods view from my seat, los banos duck blinds for lease, ramona police reports, ffxiv housing out of bounds, testing vhf antenna with multimeter, 2004 honda accord ac pressure switch location, upper cumberland reporter mugshots, secondo miracolo eucaristico di lanciano, avalanche deaths per year worldwide, funny ways to call someone boring,