Принимать пользовательский ввод
Tip
Дополнительные сведения см. на вкладке "Текст и изображения ".
Программы становятся действительно мощными, когда они могут взаимодействовать с людьми, использующими их. Метод C# Console.ReadLine() позволяет приостановить программу, подождите, пока пользователь ввел что-то и захватить эту информацию.
Использование Console.ReadLine()
Рассматривайте метод Console.ReadLine() как подсказку в виде вопроса. Когда программа попадает в эту строку, она ожидает, пока пользователь не вводит свой ответ и нажимает клавишу ВВОД , прежде чем продолжить.
Чтобы сохранить ответ пользователя, его необходимо "поймать" с помощью переменной:
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
В этом коде favoriteColor используется переменная (контейнер, содержащий значение). При запуске эта программа ожидает ввода. Если пользователь вводит Orange и нажимает Enter, результат будет следующим:
Orange
Oh, I love Orange too!
Вы можете попробовать запустить этот код самостоятельно в редакторе кода C#.
Добавьте пробел в конце запроса
Чтобы сделать входные данные пользователем более читаемыми, объединяйте Console.Write() с Console.ReadLine():
Console.Write("What is your favorite color? ");
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
Обратите внимание на пробел в конце запроса: "What is your favorite color? " Без него ввод пользователя будет выглядеть так, будто он приклеен к вашему тексту: What is your favorite color?Orange. Добавление пространства делает его более понятным.
Общие сведения о типах данных
Каждое значение в C# имеет тип данных, который указывает компьютеру, какой тип значения он имеет. Ниже приведены некоторые распространенные типы данных:
-
Строка (
string): текст, упакованный в кавычки, например"Blue"или"25". Даже число становится текстом, когда он находится внутри кавычки. -
Целое число (
int): целое число без кавычек, например25или100. С их помощью можно выполнять математические вычисления.
Почему это важно? C# обрабатывает эти типы по-разному. Можно добавить числа вместе (25 + 1 равные 26), но нельзя напрямую добавить число в текст без специальной обработки.
Console.ReadLine() всегда возвращает строку
Важно помнить, что Console.ReadLine()всегда возвращает текст (строку), даже если пользователь вводит число. Рассмотрим пример.
string age = Console.ReadLine();
Console.WriteLine(age + 1); // This causes an error!
Если вы запустите этот код и введёте 25, программа не выведет 26. Вместо этого он пытается добавить 1 в текст "25", который C# не разрешает. Это распространенная ошибка новичка!
Чтобы выполнить математику с вводом пользователем, необходимо сначала преобразовать текст в число, но мы рассмотрим это позже. Теперь помните: все типы пользователей всегда рассматриваются как текст.