Выбрать главу

ментов.

ПРИМЕЧАНИЕ Признаком того, что мы закончили ввод текстовой строки, является

нажатие клавиши Enter. При этом вся строка считывается в текстовом

формате — даже если мы ввели число, считано оно будет как текст.

Как с этим бороться, рассказано далее.

В начале программы мы объявляем две переменные (res и num) типа double.

Этот тип соответствует действительным числам в формате представления

с плавающей точкой. При этом переменная res сразу в качестве началь-

ного получает нулевое значение. В эту переменную мы будем записывать

результат вычислений. В переменную num будет записываться очередное

введенное пользователем число. Также нам понадобится символьная пере-

менная (переменная типа char) для записи символа операции. Эта пере-

менная называется op, и ее начальное значение равно '+'. Таком образом, первая операция — это сложение.

ПРИМЕЧАНИЕ Значение символьной переменой — это символ (или буква, если под

буквой подразумевать любой символ). Символьный литерал (буква) заключается в одинарные кавычки. Если букву заключить в двойные

кавычки, это будет текстовый литерал.

Нормальный режим завершения работы программы предполагает, что вме-

сто символа операции мы вводим слово exit. Это текст. Поэтому на каж-

дом этапе, когда предполагается прочитать с консоли символ оператора, мы будем считывать текст, а затем этот текст будем обрабатывать. Текст

запоминаем в переменной text, начальным значением которой является

пустая текстовая строка. После отображения приветственного сообщения

"Начинаем вычисления. Завершение - exit." в консоли, которое выводится

с помощью статического метода WriteLine() класса Console, запускается

оператор цикла do­while().

Консольная программа           47

Практически весь последующий код заключен в блок try — после

этого ключевого слова в фигурных скобках размещен обсуждаемый

далее программный код. После try-блока можно обнаружить catch-

блок. На самом деле это две составные части одной конструкции, главное и благородное назначение которой — обработка исключи-

тельных ситуаций, то есть ошибок, которые возникают в процессе

выполнения  программы.  Назначение  блока  try-catch  мы  обсудим

более детально несколько позже.

Начинается оператор цикла ключевым словом do и заканчивается инструк-

цией while(true). Формально это означает бесконечный цикл. Команды, размещенные внутри тела оператора цикла, в данном конкретном случае

могли бы выполняться бесконечно долго (если бы мы не предусмотрели

хитроумную процедуру выхода).

Оператор  цикла  do-while()  выполняется  следующим  образом:  вы-

полняются команды тела цикла (команды в фигурных скобках после

ключевого  слова  do),  после  чего  проверяется  условие,  указанное

в круглых скобках после ключевого слова while. Условие — это вы-

ражение логического типа (тип bool). Переменная этого типа может

принимать всего два значения — true (истина) или false (ложь). Если

условие истинно (значение выражения равно true), работа оператора

цикла продолжается — будут выполнены команды тела цикла, и за-

тем снова проверяется условие, и т. д. Поскольку в нашем случае

условием  указано  ключевое  слово  true,  условие  всегда  истинно.

Поэтому формально имеем дело с бесконечным циклом. На самом

деле, конечно, цикл завершится за конечное количество итераций.

В этом мы убедимся при анализе программного кода и тестировании

программы.

Командой Console.Write("Ведите число:\t") в консольное окно выводится

сообщение с приглашением ввести число. При этом в тексте использована

инструкция табулирования \t — чтобы результат вывода текстовой инфор-

мации в консольном окне выглядел упорядоченно. После этого командой

num=Double.Parse(Console.ReadLine()) считываем число, введенное поль-

зователем. Здесь нужны некоторые пояснения. Посредством инструкции

Console.ReadLine() в текстовом формате считывается то, что ввел пользо-

ватель. Мы предполагаем, что это число. Вместе с тем речь идет о текстовом

представлении числа. Именно это текстовое представление числа возвра-

щается в качестве результата инструкции. Нам необходимо текстовое пред-

ставление числа трансформировать в числовое значение — значение типа