Принимать пользовательский ввод

Завершено

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# не разрешает. Это распространенная ошибка новичка!

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