常量就是程序运行过程中,值不能改变的量,比如现实生活中的居民身份证号码、数学运算中的π值等,这些都是不会发生改变的,它们都可以定义为常量。常量可以区分为不同的类型,比如98、368是整型常量,3.14、0.25是实数常量,即浮点类型的常量,m、r是字符常量。
3.4.2 常量的分类常量主要有两种,分别是const常量和readonly常量,下面分别对这两种常量进行讲解。
1.const常量
在C#中提到常量,通常指的是const常量。const常量也叫静态常量,它在编译时就已经确定了值。const常量的值必须在声明时就进行初始化,而且之后不可以再进行更改。
例如,声明一个正确的const常量,同时再声明一个错误的const常量,以便读者对比参考,代码如下:
2. readonly常量
readonly常量是一种特殊的常量,也称为动态常量,从字面理解上看,readonly常量可以进行动态赋值,但需要注意的是,这里的动态赋值是有条件的,它只能在构造函数中进行赋值,例如,下面的代码:
如果要在构造函数以外的位置修改readonly常量的值,比如,在Main方法中进行修改,代码如下:
这时再运行程序,将会出现如图3.17所示的错误提示。
3. const常量与readonly常量的区别
const常量与readonly常量的主要区别如下:
◆const常量必须在声明时初始化,而readonly常量则可以延迟到构造函数中初始化。
◆ const常量在编译时就被解析,即将常量的值替换成了初始化的值,而readonly常量的值需要在运行时确定。
◆ const常量可以在类中或者方法体中定义,而readonly常量只能在类中定义。
3.5 运算符运算符是具有运算功能的符号,根据使用操作数的个数,可以将运算符分为单目运算符、双目运算符和三目运算符,其中,单目运算符是作用在一个操作数上的运算符,如正号(+)等;双目运算符是作用在两个操作数上的运算符,如加法(+)、乘法(*)等;三目运算符是作用在3个操作数上的运算符,C#中唯一的三目运算符就是条件运算符(?:)。本节将详细讲解C#中的运算符。
3.5.1 算术运算符C#中的算术运算符是双目运算符,主要包括+、-、*、/和%5种,它们分别用于进行加、减、乘、除和模(求余数)运算。C#中算术运算符的功能及使用方式如表3.5所示。
实例05计算学生成绩的分差及平均分
某学员3门课程的成绩如下所示:
编程实现两个功能:计算C#课和SQL课的分数之差;计算3门课的平均分数。代码如下:
程序运行结果如图3.18所示。
拓展训练:
一、制作一个简易的加法计算器程序,具体实现时,提示用户输入3个整型或浮点型数值,并计算这3个数值的和。
二、使用克莱姆法则求解下面的二元一次方程组。
21.8x+2y=28
7x+ 8y= 62
提示:克莱姆法则求解二元一次方程组的公式如图3.19所示。
注意:使用除法(/)运算符和求余运算符时,除数不能为0,否则将会出现异常,如图3.20所示。