实例010 计算矩形的面积——变量
【实例描述】
本实例主要讲解变量的使用方法。实例中通过定义一个矩形类,并为其声明两个整型变量用来表示矩形的宽和高。由用户通过控制台输入矩形的宽和高,然后计算矩形的面积。实例中还介绍了检测变量数据溢出的方法。从控制台输出矩形面积的效果如图2-7所示。计算时整型变量数据溢出的效果如图2-8所示。检测整型变量运行时数据溢出的效果如图2-9所示。
图2-7 输出矩形面积
图2-8 计算时整型变量数据溢出
图2-9 检测整型变量运行时数据溢出
【实现过程】
(1)创建一个名为RectangleArea的控制台应用程序,定义矩形类,代码如下:
class Rectangle { public int Width, Height; //声明整型变量表示矩形的宽和高 public int TryArea() //计算矩形面积并检测数据溢出 { checked { int area = Width * Height; return area; } } public int Area() { return Width * Height; } //计算矩形面积 }
(2)在 main 函数中创建矩形实例,从控制台输入数据为矩形的宽和高赋值,计算并输出矩形面积,代码如下:
Rectangle rect = new Rectangle(); //创建矩形实例
Console.WriteLine("请输入矩形宽度:"); rect.Width = int.Parse(Console.ReadLine()); //从控制台输入数据给矩形的宽赋值 Console.WriteLine("请输入矩形高度:"); rect.Height = int.Parse(Console.ReadLine()); //从控制台输入数据给矩形的高赋值 Console.WriteLine("矩形面积为:\n{0}", rect.Area());
(3)计算并输出矩形面积,然后检测矩形面积是否发生数据溢出,代码如下:
Console.WriteLine("矩形面积为:\n{0}", rect.TryArea());
【代码解析】
实例代码中创建一个矩形类Rectangle,并为其声明两个int型变量Width和Height,分别表示矩形的宽度和高度。声明变量时,首先定义变量的类型,然后定义变量名,最后用等号为变量进行赋值。
Rectangle类中还声明了两个函数Area和TryArea,其中Area直接计算矩形面积,并不会检测计算出的面积是否发生数据溢出,如图2-8所示,计算出来的矩形面积为负数,这显然是一个错误的结果,因为此时用户输入的宽度和高度过大,导致计算出来的矩形面积超过了 int型的最大值,所以得出了错误的结果;而 TryArea 方法中在计算矩形面积时使用了 checked 关键字,该关键字用于检测运行时变量数据溢出,如果发生溢出程序,则会抛出异常,如图2-9所示。
实例中还用到了Console的ReadLine方法,用于从控制台中读入一行字符串数据。实例中使用int类型提供的Parse方法将字符串转换成int类型,如果字符串表示的并不是int型变量,则会引发运行时异常。其实C#提供的整数类型和浮点类型都提供了Parse方法来将字符串转换成对应的类型。
技巧:还有一个与Parse方法功能类似的TryParse方法,该方法同样可以将指定类型的字符串转换成该类型,但不同的是,TryParse 在转换成功时返回 true,转换不成功时返回flase,并不会抛出异常导致程序中断。