В следующей строке аналогичным образом объявляется целая переменная k (int – сокращение от integer, целое). Переменной k также присваивается начальное значение, которое задается целой константой.
Далее следуют объявления вещественной переменной m и строковой переменной st. Начальным значением переменной st является “пустая” (не содержащая ни одного символа), строка, т.к. после символа “присвоить” указана строковая константа, в которой между первой и второй двойными кавычками нет ни одного символа.
Следует обратить внимание, инструкции объявления переменных не являются выполняемыми, они только сообщают компилятору информацию о том, что идентификаторы, указанные в этих инструкциях являются именами переменных.
Первой выполняемой инструкцией программы является инструкция
Console.Write("Общий вес (кг.) >");
Не трудно догадаться, что она выводит на консоль, т.е. в окно, в котором работает программа, текст Общий вес (кг.) > и тем самым показывает пользователю, какую информацию он должен ввести.
Далее следует инструкция
st = Console.ReadLine();
В результате ее выполнения в переменную st записывается значение метода ReadLine – строка символов, которую пользователь набрал на клавиатуре. Надо понимать, что метод ReadLine возвращает именно строку символов, причем, даже в том случае, если строка будет содержать только цифры, все равно это строка, а не число.
Следующая инструкция
w = System.Convert.ToDouble(st);
присваивает значение переменной w, в качестве которого используется значение метода ToDouble, который преобразует значение строковой переменной st (в ней находится строка, введенная пользователем) в соответствующее вещественное число типа double. Обратите внимание, метод ToDouble вернет значение только в том случае, если строка, указанная в качестве его параметра, содержит правильное изображение вещественного числа. Правильной строкой для метода ToDouble является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус) и содержащая правильный десятичный разделитель – запятую (при стандартной для России настройке Windows).
Следующие три инструкции
Console.Write("Количество (шт.) >");
st = Console.ReadLine();
k = System.Convert.ToInt32(st);
обеспечивают ввод значения переменной k. Так как переменная k целого типа, то для преобразования строки, введенной пользователем, в целое значение используется метод ToInt32. Метод ToInt32 вернет значение только в том случае, если строка, указанная в качестве его параметра, содержит правильное изображение целого числа. Правильной строкой для метода ToInt32 является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус).
Инструкция присваивания
m = w / k;
вычисляет средний вес. Выполняется она так: значение переменной w делится на значение переменной k и полученный результат записывается в переменную m.
Следующая инструкция
String res = "Общий вес: " + w.ToString() + " кг. \n" +
"Количество: " + k.ToString() + " шт.\n" +
"–\n" +
"Средний вес: " + m.ToString() + " кг.\n\n";
формирует строку res, записывает в нее исходные данные и результат расчета. Строка res формируется путем конкатенации (объединения) строковых констант и преобразованных в строки значений численных переменных. Преобразование числа (значения числовой переменной) в строку выполняет метод ToString.
Следует обратить внимание на последовательности \n внутри строковых констант. Символ \ внутри строковой константы отмечает начало специальной последовательности символов. Последовательность \n трактуется как символ “новая строка”. Сами символы \n на экране не отображаются, но в результате их отправки в консоль курсор перемещается в начало следующей строки экрана.
Команда
Console.WriteLine(res);
выводит в окно консоли значение переменной res – исходные данные и результат расчета.
Далее следуют инструкции
Console.Write("Press any key to continue…");
int ch = Console.Read();
Они добавлены в конец для того, чтобы пользователь смог увидеть результат работы программы. Метод Read обеспечивает чтение символа с консоли, он ожидает нажатия клавиши и, после того как клавиша будет нажата, возвращает ее код. Таким образом обеспечивается приостановка выполнения программы до момента нажатия клавиши. Если рассматриваемых инструкций в конце программы не будет, то окно консоли закроется сразу после выполнения инструкции вывода результата и пользователь не сможет увидеть результат.
Запись программы
Инструкции программы записываются последовательно, одна за другой. После каждой инструкции ставится точка с запятой. Хотя в одной строке можно записать несколько инструкций, обычно каждую инструкцию программы пишут на отдельной строке.
Некоторые инструкции, например, инструкции выбора (if, switch), циклов (for, while), в соответствии с правилами хорошего стиля программирования записывают в несколько строк и для выделения логической структуры инструкции, используют отступы.
Для облегчения понимания логики работы программы в текст программы можно, и нужно, включать комментарии . Комментарий – это пояснительный текст, который игнорируется компилятором. Язык С# допускает два вида комментариев: однострочный и многострочный. Однострочный комментарий начинается двумя наклонными чертами и продолжается до конца строки, многострочный – с последовательности символов /* и продолжается до тех пор, пока в тексте программы не встретится последовательность */.
Для выделения структуры программы можно также использовать пустые строки.
Возможность записи инструкций в несколько строк, использование отступов, пустых строк и комментариев позволяет представить одну и ту же программу в разном виде. Как правильно записать программу? Существует понятие "Хороший стиль программирования", которое можно определить как совокупность приемов, используемых в процессе составления программы. Очевидно, что программист должен следовать хорошему стилю программирования. Но что такое хороший стиль? Общепринято, что хороший стиль программирования предполагает использование несущих смысловую нагрузку идентификаторов (имен переменных, функций), использование отступов и пустых строк, комментирование ключевых фрагментов. Все перечисленные приемы позволяют сделать текст программы легко читаемым, и как следствие, значительно облегчить процесс отладки и сопровождения программы.
Набор программы
В процессе набора текста программы редактор кода автоматически выделяет цветом правильные элементы программы: ключевые слова языка программирования – синим, имена пространств имен – бирюзовым, строковые константы – коричневым, комментарии зеленым. Это позволяет уже на этапе набора контролировать правильность программы. Например, слово Console это имя пространства имен, содержащего методы работы с консолью, и оно выделяется бирюзовым. Если вместо Console набрать, например, Cansole, то в этом случае набранное слово будет отображено черным, должно насторожить программиста.
Редактор кода также выводит список объектов текущего пространства имен или свойств и методов текущего объекта, что позволяет не набирать полностью имена на клавиатуре, а выбрать нужное имя в списке. Например, если в окне редактора набрать System.Console и точку, то появится список свойств и методов объекта Console и программисту остается только выбрать нужное свойство или метод (рис. ). Обратите внимание, перед именами свойств отображается гаечный ключ, перед именами методов – кубик. Чтобы перейти к нужному элементу списка, надо нажать клавишу, соответствующую первому символу этого элемента, и нажать <Enter>.
Рис. 1.23. Список методов и свойств объекта Console
После ввода имени метода и открывающей скобки редактор кода выводит подсказку о методе (рис. 1.22).