Вывод на консоль
Метод WriteLine позволяет выводить на экран сообщения и значения переменных.
В простейшем случае в качестве параметра метода WriteLine можно указать строковую константу или имя переменной:
Console.WriteLine( "Hello, World!" );
Console.WriteLine(m);
В общем виде инструкция вызова метода WriteLine выглядит так:
Console .WriteLine(УправляющаяСтрока, СписокПеременных );
Параметр УправляющаяСтрока представляет собой строковую константу и может содержать: текст, спецификаторы формата и управляющие последовательности.
Параметр СписокПеременных, который может отсутствовать, если в управляющей строке нет спецификаторов формата, - это разделенные запятыми имена переменных, значения которых надо вывести в окно консоли.
Спецификатор формата, заключенный в фигурные скобки, задает переменную из списка переменных и формат ее вывода. Переменная задается путем указания ее номера в списке переменных (переменные в списке нумеруются с нуля).
Например:
инструкция
Console.WriteLine ( "{0}", x1);
выводит на экран значение переменной x1;
инструкция
Console.WriteLine ( "{0: n } g = {1: n } lb" , gr , fnt );
выводит значения переменных gr и fnt . Последовательности символов {0:n} и {1:n} внутри строковой константы это - спецификаторы формата. В строке, выводимой на экран, они заменяются, соответственно на значения переменных gr и fnt . Символ n указывает, что значения переменных должны быть выведены в числовом формате Numeric (при стандартной настройке Windows – с двумя цифрами после десятичного разделителя). Вид числа в формате Numeric (Числовой) определяют настройки операционной системы.
Так, например, если значение переменной gr равно 500, а значение переменной gr равно 1,10023, то на экран будет выведена строка
500,00 g = 1,10 lb
Ниже приведены некоторые, наиболее часто используемые спецификаторы форматов (параметр k задает номер переменной в списке вывода, параметр w – ширину поля вывода).
Следует обратить внимание, компилятор не проверяет правильность строки форматирования, в том числе соответствие номеров переменных количеству переменных в списке. Ошибки в строке форматирования (например, неверная запись формата), несоответствие формата и списка переменных проявляются во время работы программы и могут приводить к возникновению исключений.
Если в строку вывода надо поместить символ, который не может быть помещен в строковую константу путем набора на клавиатуре, например символ новой строки или двойная кавычка, которая используется для ограничения в тексте программы строковых констант, то вместо этого символа следует поместить специальную последовательность символов. Специальная последовательность начинается символом обратной наклонной черты. Во время работы программы символы специальной последовательности на экран не выводятся, а выполняется действие, обозначаемое этой последовательностью.
Например, в результате выполнения инструкции
Console.WriteLine ("Microsoft\nVisual Studio" );
на экран будут выведены две строки текста: в первой будет написано Microsoft, во второй – Visual Studio. Последовательность символов \n, находящаяся внутри строковой константы, это – управляющая последовательность , на экран она не выводиться, функция WriteLine интерпретирует ее как команду "перевести курсор в начало следующей строки".
Метод Write также позволяет вывести на экран строку, но в отличие от метода WritrLine после вывода строки курсор не переходит в начало следующей строки.
Метод Write удобно использовать для вывода подсказок, например:
Console.Write( "Вес в граммах >" );
По умолчанию фон экрана консоли черный, а текст, выводимый методами Write и WriteLine , – белый. Программа может, присвоив значения свойствам BackgroundColor и ForegroundColor задать, соответственно, цвет фона консоли и цвет текста. Приведенные ниже инструкции показывают, как это сделать.
Console.BackgroundColor = ConsoleColor.White ;
Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.Clear();
Обратите внимание, чтобы в начале работы программы экран окрасился установленным цветом, необходимо вызвать метод Clear().
Ввод с консоли
Наиболее просто ввести с консоли строку. Сделать это можно вызвав метод ReadLine() , например, так:
string st = Console.ReadLine();
В результате выполнения приведенной инструкции в переменную st записывается строка, набранная пользователем на клавиатуре.
Метод ReadLine работает так. Программа приостанавливает работу и ждет, пока пользователь наберет на клавиатуре строку символов и нажмет клавишу Enter. До нажатия Enter можно редактировать вводимую строку, например, нажав Backspace можно удалить последний введенный символ. После нажатия клавиши Enter метод ReadLine возвращает строку, набранную пользователем на клавиатуре.
Если надо ввести с клавиатуры численное значение, то сначала надо ввести строку, затем введенную строку при помощи соответствующей функции преобразовать строку в число. Преобразование строк в численные значения выполняют методы пространства имен System.Convert : методы ToInt 32, ToInt 64 преобразует строку, указанную в качестве параметра, в целое значение соответствующего типа; методы ToSingle и ToDouble преобразуют строку, соответственно, в значения типа Single (float ) и double .
Примеры:
// ввод вещественного значения
Console .Write( "Цена >" );
st = Console .ReadLine();
double price = System. Convert .ToDouble(st);
// ввод целого значения
Console .Write( "Количество >" );
st = Console .ReadLine();
int n = System. Convert .ToInt32(st);
Приведенные инструкции ввода можно записать и так:
// ввод вещественного значения
Console .Write( "Цена >" );
double price = System. Convert .ToDouble( Console .ReadLine());
// ввод целого значения
Console .Write( "Количество >" );
int n = System. Convert .ToInt32( Console .ReadLine());
Метод преобразования строки в численное значения возвращают результат (значение, соответствующего типа) только в том случае, если строка, указанная в качестве параметра метода, является правильным изображением числа соответствующего типа. Правильным изображением целого числа является строка, состоящая только из цифр (перед первой цифрой может быть минус), вещественного – строка, состоящая из цифр и содержащая правильный десятичный разделитель – запятую (при стандартной для России настройке операционной системы).
Если в строке, указанной в качестве параметра метода преобразования, есть "запрещенные" символы или, если, строка пустая, то возникает исключение FormatException и, если в программе не предусмотрена обработка этого исключения, программа завершает работу.
Контрольные вопросы
- В чем различие между методами Write и WriteLine?
- Является ли инструкция
Console.WriteLine("a={1:n}" b={2:n}, a , b);
правильной? Если нет, то почему? - Запишите инструкцию, которая выведет значение вещественной переменной mass с тремя знаками после десятичного разделителя.
- Какой метод следует использовать для преобразования строки в целое значение?
- Какой метод следует использовать для преобразования строки в вещественное значение?
- Какой символ следует использовать в качестве десятичного разделителя при вводе с клавиатуры вещественного значения?
- Что произойдет, если во время работы программы в ответ на запрос числа пользователь не введет число, а просто нажмет клавишу Enter?
Задание
Напишите программу, которая вычисляет массу стержня (цилиндра). Размеры стержня (мм) и плотность материала (гр./см куб.) должны вводиться во время работы программы. Результат расчета - объем (в см. куб. ) и масса стержня (кг.) должны быть выведены с тремя знаками после десятичного разделителя. После численных значений должны быть указаны единицы измерения.
Следующий урок
Урок 5. Выбор действия. Инструкция IF