🔷 C#

Ввод и вывод данных в C# (.NET 6): подробное руководство

Введение: Зачем нужен ввод и вывод данных?

Представь, что твоя программа — это робот-помощник. Чтобы робот мог что-то сделать, ему нужно:

  • Услышать задание (ввод данных) — например, узнать имя человека или размер комнаты.
  • Ответить или показать результат (вывод данных) — написать "Привет, Вася!" или посчитать площадь.

Без ввода и вывода программа похожа на книгу, которую нельзя открыть: она просто хранит код, но не общается с пользователем. В этом уроке мы научимся просить пользователя ввести данные и показывать ответы.

Основной синтаксис: как выводить и вводить данные

Вывод данных: команда Console.WriteLine

Чтобы вывести текст или число, используй Console.WriteLine(). Эта команда печатает сообщение и переводит курсор на новую строку (как нажатие Enter).

// Простое приветствие
Console.WriteLine("Привет, мир!");

// Вывод числа
Console.WriteLine(42);

// Вывод нескольких значений через запятую (склеивание)
Console.WriteLine("Мне " + 10 + " лет.");

Результат в консоли:

Привет, мир!
42
Мне 10 лет.

Ввод данных: команда Console.ReadLine

Команда Console.ReadLine() ждет, пока пользователь что-то напишет и нажмет Enter. Она всегда возвращает строку (текст).

// Спрашиваем имя
Console.Write("Как тебя зовут? "); // Write — без перехода на новую строку
string имя = Console.ReadLine(); // Пользователь вводит, например, "Аня"

Console.WriteLine("Привет, " + имя + "!");

Пример работы:

Как тебя зовут? Аня
Привет, Аня!

Важное отличие: Console.Write и Console.WriteLine

  • Console.Write — печатает и не переходит на новую строку.
  • Console.WriteLine — печатает и переходит на новую строку.
Console.Write("Раз");
Console.Write("Два");
Console.WriteLine("Три");
Console.Write("Четыре");

// Результат:
// РазДваТри
// Четыре

Как работать с числами: преобразование строк

Пользователь всегда вводит текст. Даже если он пишет "15", компьютер видит это как две буквы: '1' и '5'. Чтобы посчитать сумму или площадь, нужно превратить текст в число. Для этого есть команды:

  • int.Parse() — для целых чисел (int).
  • double.Parse() — для дробных чисел (double).
Console.Write("Введите первое число: ");
string ввод1 = Console.ReadLine(); // "10"
int число1 = int.Parse(ввод1); // теперь это число 10

Console.Write("Введите второе число: ");
string ввод2 = Console.ReadLine(); // "20"
int число2 = int.Parse(ввод2);

int сумма = число1 + число2;
Console.WriteLine("Сумма равна: " + сумма); // 30

Внимание: если пользователь введет "десять" вместо "10", программа сломается. Пока будем считать, что пользователь всё вводит правильно.

Разбор типичных задач

Задача 1: "Определение возраста"

Нужно узнать год рождения и текущий год, вычислить возраст.

Console.Write("Введите год вашего рождения: ");
string вводГодРождения = Console.ReadLine();
int годРождения = int.Parse(вводГодРождения);

Console.Write("Введите текущий год: ");
string вводТекущийГод = Console.ReadLine();
int текущийГод = int.Parse(вводТекущийГод);

int возраст = текущийГод - годРождения;
Console.WriteLine("Ваш возраст: " + возраст + " лет.");

Задача 2: "Площадь прямоугольника"

Длина и ширина — числа. Умножаем их.

Console.Write("Введите длину (м): ");
double длина = double.Parse(Console.ReadLine());

Console.Write("Введите ширину (м): ");
double ширина = double.Parse(Console.ReadLine());

double площадь = длина * ширина;
Console.WriteLine("Площадь участка: " + площадь + " кв. м.");

Задача 3: "Периметр треугольника"

Складываем три стороны.

Console.Write("Сторона A (см): ");
double a = double.Parse(Console.ReadLine());

Console.Write("Сторона B (см): ");
double b = double.Parse(Console.ReadLine());

Console.Write("Сторона C (см): ");
double c = double.Parse(Console.ReadLine());

double периметр = a + b + c;
Console.WriteLine("Периметр треугольника: " + периметр + " см.");

Частые ошибки новичков

  • Забыли преобразовать строку в число. Если написать int сумма = ввод1 + ввод2;, то склеятся строки "10" + "20" = "1020", а не числа.
  • Путают Write и WriteLine. Если использовать WriteLine для вопроса, ответ пользователя появится на следующей строке, что выглядит некрасиво.
  • Не используют переменные. Можно писать int.Parse(Console.ReadLine()) сразу, но для новичка проще сохранить ввод в переменную, чтобы видеть, что происходит.
  • Забывают точку с запятой ; в конце каждой команды.

Итоговый пример: "Уютное кафе"

Программа запрашивает имя, напиток и размер порции, а затем выводит заказ.

Console.WriteLine("Добро пожаловать в 'Уютное кафе'!");

Console.Write("Как вас зовут? ");
string имя = Console.ReadLine();

Console.Write("Что будете пить? (кофе, чай, какао): ");
string напиток = Console.ReadLine();

Console.Write("Размер порции? (маленький, средний, большой): ");
string размер = Console.ReadLine();

Console.WriteLine();
Console.WriteLine("=== ВАШ ЗАКАЗ ===");
Console.WriteLine("Имя: " + имя);
Console.WriteLine("Напиток: " + напиток);
Console.WriteLine("Размер: " + размер);
Console.WriteLine("Спасибо за заказ! Приятного аппетита!");

Пример работы программы:

Добро пожаловать в 'Уютное кафе'!
Как вас зовут? Маша
Что будете пить? (кофе, чай, какао): какао
Размер порции? (маленький, средний, большой): большой

=== ВАШ ЗАКАЗ ===
Имя: Маша
Напиток: какао
Размер: большой
Спасибо за заказ! Приятного аппетита!

Что дальше?

Ты научился общаться с программой: задавать вопросы и получать ответы. Теперь ты можешь решать задачи, где нужно что-то спросить у пользователя и что-то посчитать. Попробуй сам придумать задачу: например, спроси у пользователя его любимый цвет и скажи, что этот цвет красивый!