Операторы и исключения
Содержание
Операторы
Операторы
Условные операторы
Условный оператор(условная конструкция)
Оператор if
Пример if
Оператор switch
Оператор switch
Оператор switch
Оператор switch: шаблоны констант
Оператор switch: шаблоны типа
Оператор switch: выражение с ключевым словом when
Тернарный оператор
Операторы перехода
Операторы перехода
Операторы перехода: break
Операторы перехода: continue
Операторы перехода: goto
Минусы goto
Операторы цикла
Операторы цикла
Цикл for
Цикл while
Цикл do…while
Цикл foreach
Исключения
Исключение
Исключение
Полезные ссылки
854.29K
Категория: ПрограммированиеПрограммирование

3. Операторы и исключения

1. Операторы и исключения

Занятие 3

2. Содержание

1. Операторы
2. Условные операторы
a.
b.
c.
If…elseif…else
Switch
Тернарный оператор
3. Операторы перехода
4. Операторы цикла
a.
b.
c.
for
while/do…while
foreach
5. Исключения

3. Операторы

4. Операторы

Оператор - это символ, который сообщает компилятору выполнить определенные математические или
логические манипуляции. C# имеет набор встроенных операторов и предоставляет следующие типы
операторов:
1.
2.
3.
4.
5.
6.
Арифметические операторы
Реляционные операторы (операторы сравнения)
Логические операторы
Побитовые операторы
Операторы присваивания
Другие операторы

5. Условные операторы

6. Условный оператор(условная конструкция)

Условные операторы – это конструкции, позволяющие управлять ходом выполнения программы в
зависимости от определенных условий.
If..Else
Switch…Case

7. Оператор if

Конструкция if…else позволяет проверить некоторое условие на истинность и, в зависимости от результата,
выполнить тот или иной блок кода.
В качестве условия может выступать переменная типа bool, либо выражение, значение которого имеет
тип bool.
if (Условие_1)
{
// Блок выполнится, если Условие 1 имеет значение true
}
else if (Условие_2) // Необязательная часть
{
// Блок выполнится, если Условие 2 имеет значение true
}
else // Необязательная часть
{
}
// Блок выполнится, если Условие 1 и Условие 2 имеют значение false

8. Пример if

int n5 = 13;
int n6 = 12;
if (n5 < n6)
{
Console.WriteLine($"Число {n5} меньше числа {n6}");
}
else if (n5 > n6)
{
Console.WriteLine($"Число {n5} больше числа {n6}");
}
else
{
Console.WriteLine($"Число {n5} равно числу {n6}");
}

9. Оператор switch

Конструкция switch…case используется, когда необходимо, в зависимости от конкретного значения
переменной или результата некоторой операции, выполнить требуемый блок кода.
switch (Выражение)
{
case Шаблон_1:
// Блок кода выполняется, если Выражению соответствует Шаблон_1
break;
case Шаблон_2:
// Блок кода выполняется, если Выражению соответствует Шаблон_2
break;
// ...
default:
// Блок кода выполняется, если среди перечисленных в case шаблонах
// нет подходящего
break;
}

10. Оператор switch

В зависимости от версии языка C# допустимы различные шаблоны, которые можно использовать в блоках
case. В C# 6 и более ранних версиях допустимы только константы следующих типов:
char;
string;
bool;
целочисленное значение;
enum.
Блок case может закончится оператором:
break – прерывание кода в конструкции switch;
goto case – используется если необходимо перейти в другой case;
return – завершает выполнение метода и возвращает указанное значение;
throw – используется для выброса исключения.

11. Оператор switch

В качестве шаблонов в case могут выступать:
шаблоны констант;
шаблоны типов;
выражение с ключевым словом when.

12. Оператор switch: шаблоны констант

Шаблон константы предполагает, что мы сравниваем значение выражение из switch с константами, которые
располагаются в блоках case. В таком варианте работы switch…case допустимы константы следующих
типов:char, string, bool, целочисленное значение и enum.
string s1 = "Three";
switch (s1.ToLower())
{
case "one": Console.WriteLine("Case one"); break;
case "two": Console.WriteLine("Case two"); break;
case "three": Console.WriteLine("Case three"); break;
case "four": Console.WriteLine("Case four"); break;
case "five": Console.WriteLine("Case five"); break;
default: Console.WriteLine("Default case"); break;
}

13. Оператор switch: шаблоны типа

Шаблон типа предполагает сопоставление результата вычисления выражения, которое передается в switch, с
типом, указанным в case: case type var_name
Если результат выражения можно привести к указанному типу, то полученное значение присваивается
переменной с указанными именем – var_name.
object trans = new Moto() { Name = "Suzuki" };
switch (trans)
{
case Bicycle bicycle: Console.WriteLine($"Bicycle: {bicycle.Name}"); break;
case Moto moto: Console.WriteLine($"Moto: {moto.Name}"); break;
case Car car: Console.WriteLine($"Car {car.Name}"); break;
case Transport transport: Console.WriteLine($"Transport {transport.Name}");
break;
case null: Console.WriteLine("Transport is null!"); break;
}

14. Оператор switch: выражение с ключевым словом when

Язык C#, начиная с версии 7.0, позволяет использовать в switch…case предложение when для реализации
возможности использования дополнительного условия. В этом случае типы после ключевого слова case
могут совпадать и дополнительная фильтрация будет производиться по условию после when.
object bc = new Bicycle() { Name = "Trec", WheelsCount = 1 };
switch (bc)
{
case Bicycle bicycle when bicycle.WheelsCount == 1:
Console.WriteLine($"Bicycle: {bicycle.Name}, type - monocycle"); break;
case Bicycle bicycle when bicycle.WheelsCount == 2:
Console.WriteLine($"Bicycle: {bicycle.Name}, type - classic"); break;
case Bicycle bicycle when bicycle.WheelsCount == 3:
Console.WriteLine($"Bicycle: {bicycle.Name}, type - tricycle"); break;
case Moto moto: Console.WriteLine($"Moto: {moto.Name}"); break;
case Car car: Console.WriteLine($"Car {car.Name}"); break;
case Transport transport: Console.WriteLine($"Transport {transport.Name}"); break;
case null: Console.WriteLine("Transport is null!"); break;
}

15. Тернарный оператор

Результатом вычисления тернарного оператора является одна из двух альтернатив, которая выбирается в
зависимости от истинности проверяемого условия.
condition ? if_true : if_else
В зависимости от значения логического выражения condition возвращается результат вычисления выражения
if_true или if_else.
int n8 = 5;
int n9 = 8;
int largerNumber = n8 > n9 ? n8 : n9;

16. Операторы перехода

17. Операторы перехода

Язык C# предоставляет специальные операторы для прерывания выполнения всего цикла и для
принудительного завершения текущей итерации с переходом к следующей.
Break
Continue
Goto

18. Операторы перехода: break

Break:
в операторах цикла оператор break
используется для завершения
циклического процесса (прерывание
работы цикла). Такое действие
необходимо, когда нужно прервать
выполнение цикла в зависимости от
некоторого условия;
в операторе выбора switch
применение оператора break нужно
для реализации выхода из данного
оператора.

19. Операторы перехода: continue

Continue:
Оператор continue применяется
внутри тела цикла. Оператор
прекращает выполнение текущей
итерации и переходит к следующей
итерации (следующему шагу цикла).
Использование оператора continue в
цикле эффективно, если нужно
пропустить некоторые итерации в
зависимости от условия.

20. Операторы перехода: goto

goto label:
в теле программы (некоторой
функции) для организации перехода
между операторами;
в операторе switch для перехода к
одной из ветвей case.

21. Минусы goto


корректность кода без goto доказать легче
код с операторами goto трудно форматировать
goto влияет на логическую структуру программы
применение goto препятствует оптимизации, выполняемой компилятором
goto усложняет анализ кода

22. Операторы цикла

23. Операторы цикла

Циклы в языках программирования предназначены для построения конструкции, выполняющей заданный
блок кода некоторое количество раз, которое определяется тем или иным условием.
for
while/do…while
foreach

24. Цикл for

● Инициализатор – это выражение, вычисляемое перед выполнением тела цикла. Обычно здесь
инициализируется локальная переменная, которая будет использоваться как счетчик.
● Условие – это выражение, которое проверяется перед каждой новой итерацией цикла. Если значение
выражения равно true, то будет выполнено тело цикла, если false – произойдет выход из цикла и
выполнится следующая за ним инструкция.
● Итератор – это выражение, вычисляемое после каждой итерации. Обычно здесь происходит
изменение локальной переменной, объявленной в инициализаторе.
for (инициализация счетчика; условие; итератор)
{
// оператор (набор операторов)
}
for (int i = 0; i < 3; i++)
{
console.writeline(“Квадрат числа i ” + i*i);
}

25. Цикл while

В этом цикле проверяется условие, и если оно истинно, то выполняется набор операторов внутри тела
цикла. Обязательно убедитесь, что изменяете переменную, от которой зависит условие, иначе цикл
станет бесконечным, если, конечно, это не является целью.
while (условие)
{
// Тело цикла
}
int i = 0;
int number = 3;
while(i <= number)
{
Console.WriteLine("Итерация цикла номер " + i);
i++;
}
Console.ReadKey();

26.

27. Цикл do…while

Отличие do/while заключается в том, что проверка условия происходит после тела цикла, что приводит к
тому, что вне зависимости от условия цикл выполнится хотя бы один раз.
do
{
//Тело цикла
} while (условие);
int j = 0;
int number2 = 3;
do
{
Console.WriteLine("Итерация цикла номер " + j);
j++;
} while (j > number2);
Console.ReadKey();

28. Цикл foreach

Оператор foreach используется для обхода коллекций, последовательно переходя от элемента к элементу в
цикле.
foreach (тип имя_переменной_цикла in
коллекция)
{
// Тело цикла
}
int[] nums = { 6, 3, 6, 8, 9, 12, 4, 5, 88, 54, 3, 66, 78, 10,
12, 5, 7, 9, 3, 5 };
int result = 0;
foreach (int n in nums)
{
if (n > 10)
{
result++;
}
}
Console.WriteLine($"Количество чисел в массиве
больше 10: {result}");

29. Исключения

30. Исключение

Иногда при выполнении программы возникают ошибки, которые трудно предусмотреть или предвидеть, а
иногда и вовсе невозможно. Например, при передачи файла по сети может неожиданно оборваться сетевое
подключение. такие ситуации называются исключениями. Язык C# предоставляет разработчикам
возможности для обработки таких ситуаций. Для этого в C# предназначена конструкция try...catch...finally.
try
{
if (divider != 0)
{
double result = dividend / divider;
}
result = dividend / divider;
}
catch (DivideByZeroException ex)
{
Console.WriteLine(ex.GetType().FullName);
Console.WriteLine(ex.Message);
}

31. Исключение

try {
int x = int.Parse(Console.ReadLine());
int y = int.Parse(Console.ReadLine());
Console.WriteLine("Результат: " + x/y);
}
// Обрабатываем исключение возникающее при делении на ноль
catch (DivideByZeroException) {
Console.WriteLine("Деление на 0 detected!!!\n");
}
// Обрабатываем исключение при некорректном вводе числа в консоль
catch (FormatException) {
Console.WriteLine("Это НЕ число!!!\n");
}
finally {
Console.WriteLine("Спасибо за попытку!\n");
}

32. Полезные ссылки

1. Ссылка на репозиторий с примерами:
https://github.com/latypdin23/Operator.git
2. Оператор goto:
https://forum.itvdn.com/t/urok-6-operator-bezuslovnogo-perehoda-goto/3100
English     Русский Правила