Class Program

Namespace ConsoleInOut

Листинг 2.9. Методы вывода.

Простейший ввод-вывод

Линейные программы

Линейной называется программа, все операторы которой выполняются последова­тельно в том порядке, в котором они записаны. Простейшим примером линейной программы является программа расчета по заданной формуле. Она состоит из трех этапов: ввод исходных данных, вычисление по формуле и вывод результатов. Для того чтобы написать подобную программу, вам пока не хватает знаний о том, как организовать ввод и вывод на языке С#.

Любая программа при вводе исходных данных и выводе результатов взаимодей­ствует с внешними устройствами. Совокупность стандартных устройств ввода и вывода, то есть клавиатуры и экрана, называется консолью. Обмен данными с консолью является частным случаем обмена с внешними устройствами.

В языке С#, как и во многих других, нет операторов ввода и вывода. Вместо них для обмена с внешними устройствами применяются стандартные объекты. Для работы с консолью в С# применяется класс Console, определенный в пространст­ве имен System. Методы этого класса Write и WriteLine уже использовались в ваших программах. Поговорим о них подробнее, для чего внесем некоторые изме­нения в листинг 2.1. Результаты этих изменений представлены в листинге 2.9.

 

using System;

using System.Collections.Generic;

using System.Text;

{

{

static void Main(string[] args)

{

int i = 3;

double y = 4.12;

decimal d = 600m;

string s = "Vasya";

Console.WriteLine("i=" + i); //1

Console.WriteLine("y={0} \nd={1}",y,d); //2

Console.WriteLine("s=" + s); //3

}

}

}

 

Результат работы программы:

i = 3

y = 4.12

d = 600

s = Vasya

До сих пор мы использовали метод WriteLine для вывода значений переменных и ли­тералов различных встроенных типов. Это возможно благодаря тому, что в клас­се Console существует несколько вариантов методов с именами Write и WriteLine, предназначенных для вывода значений различных типов.

Методы с одинаковыми именами, но разными параметрами называются перегруженными. Компилятор определяет, какой из методов вызван, по типу передавае­мых в него величин. Методы вывода в классе Console перегружены для всех встро­енных типов данных, кроме того, предусмотрены варианты форматного вывода.

Листинг 2.9 содержит два наиболее употребительных варианта вызова методов вывода. Сначала обратите внимание на способ вывода пояснений к значениям переменных в строках 1 и 3. Пояснения представляют собой строковые литера­лы. Если метод WriteLine вызван с одним параметром, он может быть любого встроенного типа, например, числом, символом или строкой. Нам же требуется вывести в каждой строке не одну, а две величины: текстовое пояснение и значе­ние переменной, — поэтому прежде чем передавать их для вывода, их требуется «склеить» в одну строку с помощью операции +.

Перед объединением строки с числом надо преобразовать число из его внутрен­ней формы представления в последовательность символов, то есть в строку. Пре­образование в строку определено во всех стандартных классах С# — для этого служит метод ToString(). В данном случае он выполняется неявно, но можно вы­звать его и явным образом:

Console.WriteLine("i = " + i.ToString() );

 

Оператор 2 иллюстрирует форматный вывод. В этом случае используется другой вариант метода WriteLine, который содержит более одного параметра. Первым па­раметром методу передается строковый литерал, содержащий помимо обычных символов, предназначенных для вывода на консоль, параметры в фигурных скоб­ках, а также управляющие последовательности (они были рассмотрены в главе 2).

Параметры нумеруются с нуля, перед выводом они заменяются значениями со­ответствующих переменных в списке вывода: нулевой параметр заменяется зна­чением первой переменной (в данном примере — у), первый параметр — второй переменной (в данном примере — d) и т. д.