Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ООП C#.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

Управляющие последовательности

Как и в других основанных на С языках, строковые литералы C# могут содержать различные управляющие последовательности, которые позволяют уточнять то, как символьные данные должны выводиться в выходной поток. Каждая управляющая последовательность начинается с символа обратной косой черты, за которым следует интерпретируемый знак.

Таблица 8. Управляющие последовательности в строковых литералах

За счет добавления к строковому литералу префикса @ можно создавать так называемые дословные строки. Дословные строки позволяют отключать обработку управляющих последовательностей в литералах и выводить значения string в том виде, в каком они есть. Эта возможность наиболее полезна при работе со строками, представляющими пути к каталогам и сетевым ресурсам. Таким образом, вместо использования управляющей последовательности \\ можно написать следующий код:

Добавьте в проект код, иллюстрирующий использование управляющих символов

Итерационные конструкции c#

Все языки программирования предлагают способы для повторения блоков кода до тех пор, пока не будет удовлетворено условие завершения. Каким бы языком вы не пользовались в прошлом, итерационные операторы C# не должны вызывать недоумения или требовать особо подробных объяснений. В C# предоставляются четыре итерационных конструкции:

  • цикл for;

  • цикл foreach/in;

  • цикл while;

  • цикл do/while.

Цикл for Если требуется повторять блок кода фиксированное количество раз, хороший уровень гибкости предлагает оператор for. Он позволяет указать, сколько раз должен повторяться блок кода, а также задать условие завершения. Ниже приведен пример применения этого оператора:

Добавьте в проект метод, выводящий на экран 5 первых членов любой геометрической прогрессии.

Все приемы, освоенные в языках С, C++ и Java, применимы также при создании операторов for в С#. Можно создавать сложные условия завершения, строить бесконечные циклы, циклы в обратном направлении (с помощью операции --) и использовать ключевые слова для переходов goto, continue и break. Цикл foreach

Ключевое слово foreach в C# позволяет проходить в цикле по всем элементам контейнера, не требуя проверки его верхнего предела. Однако в отличие от цикла for, цикл foreach будет выполнять проход по контейнеру только линейным (n+1) образом (т.е. нельзя выполнять проход по контейнеру в обратном направлении, пропускать каждый третий элемент и т.п.). Тем не менее, если требуется просто выполнить проход по коллекции элемент за элементом, цикл foreach — именно то, что нужно. Ниже приведены два примера использования цикла foreach — один для обхода массива строк и один для обхода массива целых чисел. Обратите внимание, что тип данных, указанный перед ключевым словом in, представляет тип данных контейнера.

Добавьте в проект метод, иллюстрирующий данное поведение

Циклы while и do/while Итерационную конструкцию while удобно применять, когда требуется, чтобы блок операторов выполнялся до тех пор, пока не будет удовлетворено условие завершения. Внутри контекста цикла while необходимо позаботиться о том, чтобы это условие действительно удовлетворялось, иначе получится бесконечный цикл. Ниже приведен пример, в котором на консоль выводится сообщение "In while loop" до тех пор, пока пользователь не завершит цикл вводом yes в командной строке:

Добавьте в проект метод, иллюстрирующий данное поведение

Тесно связанным с while является цикл do/while. Подобно простому while, цикл do/while применяется тогда, когда какое-то действие должно выполняться неопределенное количество раз. Разница между этими двумя циклами состоит в том, что цикл do/while гарантирует выполнение соответствующего блока кода хотя бы один раз, в то время как цикл while может его вообще не выполнить, если условие с самого начала оказывается ложным. Конструкции принятия решений и операции равенства/сравнения Теперь, когда вы знаете, как многократно выполнять блок операторов, давайте рассмотрим следующую связанную концепцию — управление потоком выполнения программы. Для изменения хода выполнения программы в C# предлагаются две следующих конструкции:

• оператор if/else;

• оператор switch. Сначала рассмотрим оператор if/else. В отличие от С и C++, в языке C# этот оператор может работать только с булевскими выражениями, но не с произвольными значениями наподобие -1 и 0.

Таблица 9. Операции равенства и сравнения в C#

В операторе if могут также применяться сложные выражения, и он может содержать операторы else, обеспечивая выполнение более сложных проверок. Его синтаксис идентичен аналогам в С (C++) и Java. Для построения сложных выражений в C# используется вполне ожидаемый набор условных операций.

Таблица 10. Условные операции C#

Еще одной простой конструкцией в С#, предназначенной для реализации выбора, является оператор switch. Как и в остальных основанных на С языках, оператор switch позволяет организовать выполнение программы на основе заранее определенного набора вариантов. Например, в приведенном ниже методе Main() для каждого из двух возможных вариантов выводится свое сообщение (блок default обрабатывает недопустимый выбор).

Добавьте в проект метод, иллюстрирующий работу switch

Одна из замечательных особенностей оператора switch в C# заключается в том, что помимо числовых значений он также позволяет производить вычисления со строковыми данными. Ниже для примера приведена модифицированная версия предыдущего оператора switch (обратите внимание, что при этом синтаксический разбор пользовательских данных в числовые значения не требуется).