数据的指代表示变量明明白白学C#大学霸

数据的指代表示变量明明白白学C#大学霸

明明白白学C#

明明白白学C#

1.3  数据的指代表示——变量

虽然通过程序中写字面量可以很清楚表达数值,但很多时候并不适合这样来做。这个时候,就需要使用其他方式来进行表示数据。本节将讲解新的方式——指代表示。

1.3.1  为什么使用指代表示

为了让大家更能直观感受到使用指代表示的好处,下面先看两个例子。

1.数据书写繁琐

【示例1-7】在实际的生活中,有时候需要计算圆的周长、面积。例如,比尔家的圆形花园要围一个栅栏,就需要获取该圆形花园的周长。圆的周长计算公式为“C=2πr”,面积计算公式为“S=πr²”。如果比尔家的花园半径为5.25m,则花园周长为:

C=2*3.1415926535897*5.25

而花园面积为:

S=3.1415926535897*5*5.25

我们知道,无论计算圆的周长或者面积,都使用到了圆周率π。圆周率π≈3.1415926535897,该值是一个无限不循环小数,根据不同的精度要求取相应的值。上面的计算公式中我们可以看出每次计算都把圆周率3.1415926535897书写一次,稍不小心,写错一个数字,都会影响计算结果的正确性。为了简化,我们通常会写成如下形式:

PI=3.1415926535897

C=2*PI*5.25

S=PI*5.25*5.25

这里,我们使用PI来代表3.1415926535897。我们会发现算式简单多了。如果我们再做一次简化,使用r代表5.25,我们会得到更简化形式,如下:

PI=3.1415926535897数据的指代表示变量明明白白学C#大学霸

r=5.25

C=2*PI*r

S=PI*r*r

我们只是使用几个字母做了一个替换,虽然增加两行,但是整体结构就清晰了。并且,由于替换了复杂的数值,我们也不容易出错了。

2.不断变化的数据

【示例1-8】比尔是某公司的职员,他的月工资为3000元。他每个月的房租500元,此时工资剩余金额为:

3000-500

每个月的水电费是80元,此时他的工资剩余金额为:

3000-500-80

每个月除了固定支出,比尔还有不定额的开销。假如当月吃饭的花销为500元,则剩余工资金额为:

3000-500-80-500

此外还有买牙膏、洗发水等日用品的花销为50元,则剩余工资金额为:

3000-500-80-500-50

由此可见,每次比尔计算当前工资剩余金额都需要使用3000减去各种费用,很不方便。而且当前工资剩余金额是一个不固定的值。因此,我们可以使用一个量x来代替当前工资剩余金额。那么,每个月开始时工资剩余金额x为3000。减去每个月的房租500元,剩余工资为x:

x=x-500

每个月的水电费是80元,此时他的工资剩余金额为x:

x=x-80

当月吃饭花销为500元,则剩余工资为x:

x=x-500

买牙膏、洗发水等日用品的花销为50元,则剩余工资金额为x:

x=x-50

随着开销的增大,当前金额x不断变化,月末x的值就是当月的工资结余。

综上所述,使用指代方式在很多时候方便写作。而这种为了指代表示,所引出的PI、r、x都被称为变量。只是PI、r是不变的量,而x是变化的量。使用这些变量来指代数据,可以简化代码,使得代码结构更加清晰,同时用来指代那些变化的数值。

1.3.2  C#的命名规范

变量必须有名称,才能准确地对其指代的数据进行操作。如同我们生活在这个世界中,每个人的姓名都有相应的规则。在C#的编程世界中,任何事物的命名也有自身的规范——标识符命名规范。

1.标识符命名规范

在C#中任何一个东西都有对应的名字。我们把每个名字都称为标识符。C#中标识符的命名规则如下:

q  C#中标识符只能由大写字母、小写字母、下划线、数字(0~9)组成。

q  必须以大写字母、小写字母或下划线开头。

q  标识符大小写敏感,即大写字母和小写字母被认为是不同的字母。

2.被系统使用的标识符——关键字

有一些标识符对编译器具有特殊的意义,因此被保留下来,称为关键字。C#中常用的关键字如表1.6所示。

表1.6  C#常用关键字数据的指代表示变量明明白白学C#大学霸

abstract event new struct
as explicit null switch
base extern object this
bool false operator throw
break finally out true
byte fixed override try
case float params typeof
catch for private uint
char foreach protected ulong
checked goto public unchecked
class if readonly unsafe
const implicit ref ushort
continue in return using
decimal int sbyte virtual
default interface sealed volatile
delegate internal short void
do is sizeof while
double lock stackalloc
else long static
enum namespace string

Comments are closed.