1、用户输入的基础知识
在之前的知识介绍过程中,我们一直在用Console.Writeline()的模板功能,将相关内容输出到屏幕上。
我们之前做的一直是在看程序运行结果,但是我们知道,现实中我们使用的软件程序都是可以和用户互动的,接下来我们看看,在控制台应用程序中,我们怎么和程序进行简单的互动:
程序运行的时候是这样的
此时我们在光标的位置随便输入一些内容后敲回车
我们输入的内容就在第二行输出啦!
嗯,不过这时会出现一个问题,刚刚的代码运行时,我们没有输入的时候,界面上只有一个光标,此时对于用户来说,很可能不知道要干啥所以我们简单修改代码:
这样我们看到,当程序运行的时候,界面上有提示信息,用户就可以依据提示信息来进行操作啦。
现在我们回头看看代码,哦,原来接收用户输入的命令是Console.ReadLine()呀。这回咱们知道啦,当程序跑到Console.ReadLine()的时候,程序会自动等待接收用户的输入。
不过我们仔细的端详一下代码发现,Console.ReadLine()的前面还有一个String str呢,这是声明一个字符串变量的意思。原来我们不仅仅需要用Console.ReadLine()来接收用户的输入,而且当接收到用户的输入后,需要保存在一个变量中。然后我们才能通过使用对应的变量,来操作用户的输入内容。
原来控制台程序和用户互动如此简单。
那么我们简单列举一下Console类中我们常用的方法
Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。
Console.WriteLine 表示向控制台写入字符串后换行。
Console.Read 表示从控制台读取字符串,不换行。
Console.ReadLine 表示从控制台读取字符串后进行换行。
Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中。
Console.Beep 通过控制台扬声器播放提示音。
Console.Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。
其余暂时没接触过的方法很简单,大家可以简单测试。
2、用户输入随之而来的问题
那么我们知道了如何在控制台应用程序中控制用户输入内容,那么我们接下来就产生一个想法,不如我们现在做个计算器的雏形吧。比如先做个计算加法的功能试试,于是我们的代码是:
这里我们的想法是,先让用户在屏幕上依照提示输入第一个和第二个数字,当用户输入完毕后自动计算并输出到屏幕上。
但是代码敲出来就出问题了,用户输入位置就报错啦。
这思路没错呀,因为不是说C#对数据类型要求比较严格嘛,那既然我们想实现加法,那就暂时用int的变量接收用户的输入不就成啦?
这里先给出答案,因为Console.ReadLine()默认接收到的结果为字符串类型,所以我们是不能用int来接收一个字符串的。
不过从逻辑上来看,Console.ReadLine()也的确应当用字符串类型来接收,因为我们不知道当用户输入的时候,用户究竟要输入什么样的内容,可能用户输入的是数字,也可能输入的是字符。
那既然有硬性规定,那么我们修改一下代码:
这程序倒是可以正常运行了,但是这结果……
其实不难猜到,当我们用字符串来接收用户的输入后,得到的也是字符串,这时的a+b其实就是将用户的两次输入连接在一起输入而已,并没有进行加法运算。(此处有个知识点:我们可以用加号将两个字符串链接!)
这时怎么办呢?因为C#对变量的数据类型要求很严格,所以要处理这样的问题,我们就需要数据类型转换,于是我们修改代码:
看!这回程序正常运行啦。
我们用Convert.ToInt32()来将字符串类型转换成int类型。
嗯……先享受一下成果,试试减法、乘法、除法和取余数。其他的问题明天再说……
领取专属 10元无门槛券
私享最新 技术干货