数据的指代表示变量明明白白学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.