接受用户输入

已完成

当程序能够与使用它们的人员交互时,程序变得非常强大。 C# Console.ReadLine() 方法允许你暂停程序,等待用户键入内容并捕获该信息。

使用 Console.ReadLine()

Console.ReadLine() 方法视为提问提示。 当程序达到此行时,它会等到用户键入答案并按 Enter 键,然后再继续。

若要保存用户的答案,必须用变量把它“捕获”下来:

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:没有引号的整数,如 25100。 你可以用这些来做数学运算。

为什么了解这一点很重要? 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# 不允许的。 这是一个常见的初学者错误!

若要使用用户输入进行数学运算,需要先将文本转换为数字,但稍后我们将介绍这一点。 现在,请记住:用户输入的任何内容始终都会被视为文本。