Ввод и вывод данных в 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("Спасибо за заказ! Приятного аппетита!");
Пример работы программы:
Добро пожаловать в 'Уютное кафе'!
Как вас зовут? Маша
Что будете пить? (кофе, чай, какао): какао
Размер порции? (маленький, средний, большой): большой
=== ВАШ ЗАКАЗ ===
Имя: Маша
Напиток: какао
Размер: большой
Спасибо за заказ! Приятного аппетита!
Что дальше?
Ты научился общаться с программой: задавать вопросы и получать ответы. Теперь ты можешь решать задачи, где нужно что-то спросить у пользователя и что-то посчитать. Попробуй сам придумать задачу: например, спроси у пользователя его любимый цвет и скажи, что этот цвет красивый!