实例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,并不会抛出异常导致程序中断。