- •7. Вычитание в двоичной системе
- •При представлении с фиксированной запятой
- •20. Форматы данных
- •21. Представление числа в форме с плавающей запятой.
- •23. Форматы данных
- •Расширенная форма Бэкуса-Наура
- •25. Технология структурного программирования при разработке серьезных программных комплексов, основана на следующих принципах:
- •Типы интерпретаторов
- •Структура компилятора
- •Синтаксис:
- •38. Типы данных
- •Арифметические операции
- •Логические операции
- •43. С#Операции отношения:
- •Pascal Операции отношения
- •44. C# Операция присваивания
- •45. Стандартные процедуры и функции
- •46. 1) Класс Math:
- •Заголовок программы
- •Раздел меток (label)
- •Раздел констант (const)
- •Раздел типов (type)
- •Раздел переменных (var)
- •Раздел процедур и функций
- •Раздел действий (операторов)
- •Операторы ввода данных
- •Операторы вывода данных
- •54. Оператор case (оператор выбора)
- •55. Оператор if
- •Оператор switch
- •59. Оператор goto
- •Оператор return
- •Оператор throw
- •Исключительные ситуации
- •61. Класс
- •62. Состав классов
- •Модификаторы параметров методов
- •67. Статические конструкторы
- •68. Статические классы
- •Двумерные массивы
- •Создание массивов
- •Копирование массивов
- •Сортировка и поиск
59. Оператор goto
Оператор goto имеет простой синтаксис и семантику:
goto [метка|case константное_выражение|default];
Все операторы языка C# могут иметь метку - уникальный идентификатор, предшествующий оператору и отделенный от него символом двоеточия. Передача управления помеченному оператору - это классическое использование оператора goto. Два других способа использования goto (передача управления в case или default-ветвь) используются в операторе switch, о чем шла речь выше. "О вреде оператора goto" и о том, как можно обойтись без него, писал еще Эдгар Дейкстра при обосновании принципов структурного программирования.
|
В структурном программировании признаются полезными "переходы вперед" (но не назад), позволяющие при выполнении некоторого условия выйти из цикла, из оператора выбора, из блока. Для этой цели можно использовать оператор goto, но лучше применять специально предназначенные для этих целей операторы break и continue. Оператор break может стоять в теле цикла или завершать case-ветвь в операторе switch. Пример его использования в операторе switch уже демонстрировался. При выполнении оператора break в теле цикла завершается выполнение самого внутреннего цикла.
Оператор continue используется только в теле цикла. В отличие от оператора break, завершающего внутренний цикл, continue осуществляет переход к следующей итерации этого цикла.
Оператор continue используется только в теле цикла. В отличие от оператора break, завершающего внутренний цикл, continue осуществляет переход к следующей итерации этого цикла.
Оператор return
Еще одним оператором, относящимся к группе операторов перехода, является оператор return, позволяющий завершить выполнение процедуры или функции. Его синтаксис:
return [выражение];
Для функций его присутствие и аргумент обязательны, поскольку выражение в операторе return задает значение, возвращаемое функцией.
Оператор throw
Для генерации исключения используется оператор throw с параметром, определяющим вид исключения. Параметр должен быть объектом, порожденным от стандартного класса System.Exception. Этот объект используется для передачи информации об исключении его обработчику.
Синтаксис оператора throw:
throw [ выражение ];
Форма без параметра применяется только внутри блока catch для повторной генерации исключения. Тип выражения, стоящего после throw, определяет тип исключения, например:
throw new DivideByZeroException();
Здесь после слова throw записано выражение, создающее объект стандартного класса «ошибка при делении на 0» с помощью операции new.
При генерации исключения выполнение текущего блока прекращается и происходит поиск соответствующего обработчика с передачей ему управления. Обработчик считается найденным, если тип объекта, указанного после throw, либо тот же, что задан в параметре catch, либо является производным от него.
60.
Исключительные ситуации
Исключительная ситуация (или, короче, исключение) представляет собой ту или иную ошибку или отклонение от обычного сценария во время выполнения программы. С помощью подсистемы обработки исключений языка С# можно обрабатывать такие ошибки, не вызывая аварийного завершения программы.
Для обработки исключений в языке С# примененяются следующие ключевые слова: try, catch, throw, finally. Перечисленные ключевые слова образуют взаимосвязанную подсистему, в которой использование одного из ключевых слов влечет за собой использование других.
Обработка исключений в языке C# реализуется на основе операторных блоков try и catch.
