C#:⽤Console.ReadLine输⼊数值型数据以及如何避免报错
在C#学习中,Console.ReadLine语句的使⽤必不可少:它的功能是接收操作者输⼊的内容。
⽽这个语句⽐较有脾⽓,只接收string类型的内容,⽽不会接收其他如int类型的输⼊内容。有图为例:如果我们想要利⽤
Console.ReadLine();来计算的话,那么这可是⼀个问题。
*(这⾥涉及到了显隐式转换的问题,在这⾥不做过多讲解。)
总之要想解决这个问题,⽅法如下: 通过Convert转换的⽅法来解决。整体思路是先将输⼊的内容定义为string类型,之后在计算之前再将这些内容进⾏Convert转换成Int或Double等格式进⾏计算。
Convert的语法:
数据类型变量名1 = Convert.To数据类型(变量名2);
*数据类型为转化后的数据类型;变量名1为转换后的数据,⽽变量名2则是要被转换的数据。
E.G:
Console.WriteLine("请输⼊两个加数,计算和");
String str1 = Console.ReadLine();//输⼊的第⼀个数为加数1
String str2 = Console.ReadLine();//输⼊的第⼆个数为加数2
Double dou1 = Convert.ToDouble(str1);//转换加数1为Double类型
Double dou2 = Convert.ToDouble(str2);//转换加数2为Double类型
Double sum = dou1 + dou2;//定义sum为总和,计算
Console.WriteLine("和为{0}",sum);
Console.ReadKey();
这个问题解决了,但是如果⽤户在输⼊过程中,不输⼊int类型的内容呢?
这样需要的另⼀种解决⽅法就是TryPrase⽅法,这种⽅法能够直接将输⼊的⾮法数据类型数据强⾏转换成要求的数据类型。当然这种情况下转换后的值都会变成0,但是这样⾄少不会报错。
语法:
Int.TryPrase(Console.ReadLine(), out 变量名);
E.G:
writeline输出数值变量
Console.WriteLine("请输⼊⼀个值");
int age = 0;
int.TryParse(Console.ReadLine(), out age); Console.WriteLine(age);//输出⽤户输⼊的值Console.ReadKey();
正确输⼊:
错误输⼊: