C2012大学教程第3章_第1页
C2012大学教程第3章_第2页
C2012大学教程第3章_第3页
C2012大学教程第3章_第4页
C2012大学教程第3章_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

23

C#程序入门3What’sinaname?Thatwhichwecallarose

byanyothernamewouldsmellassweet.WilliamShakespeareWhenfacedwithadecision,Ialwaysask,

“Whatwouldbethemostfun?”PeggyWalker4“Takesomemoretea,”theMarchHaresaidtoAlice,veryearnestly.“I’vehadnothingyet,”Alicerepliedinanoffendedtone,“soIcan’ttakemore.”“Youmeanyoucan’ttakeless,”saidtheHatter:“it’sveryeasytotakemorethannothing.”LewisCarroll

5目标本章将讲解:用代码而不用可视化编程技术编写简单的C#程序从键盘输入数据和向屏幕输出数据声明并使用各种类型的数据存储和读取内存数据使用算术运算符确定运算符的执行顺序编写判断语句使用关系运算符和相等运算符63.1

简介3.2

一个简单的C#程序:显示一行文本3.3

在VisualStudio中创建简单的程序3.4

修改C#程序3.5

用Console.Write和Console.WriteLine格式化文本3.6

另一个C#程序:数据相加3.7

内存概念3.8

算术运算符3.9

判断:相等运算符与关系运算符3.10

(可选)ATM需求文档73.1

简介

控制台应用程序(Consoleapplications)在控制台窗口中输入和输出文本,在WindowsXP和WindowsVista系统中称为命令提示(CommandPrompt)。8Welcome1.cs图.3.1|显示文本的程序声明

Welcome1类注释提高代码可读性3.2

一个简单C#程序:显示一行文本(续.)93.2

一个简单C#程序:显示一行文本(续.)程序员给程序文档插入注释。注释提高代码的可读性。C#编译器会忽略注释,因此当运行程序时,注释不会让计算机执行任何动作。以//

开头的注释叫做单行注释(single-linecomment),因为注释在行的末尾就结束了。一个

//

注释也可以在行中间开始并直到行末尾。

定界注释(Delimitedcomments)

以定界符/*开始

并以定界符*/结束。所有包含在定界符之间的文本会被编译器忽略。103.2

一个简单C#程序:显示一行文本(续.)常见的编程错误3.1遗忘定界注释的某个定界符是一个语法错误。编程语言的语法制定了以这种语言创建正确的程序规则。当编译器遇到违反C#语言规则的代码时,就会出现语法错误。113.2

一个简单C#程序:显示一行文本(续.)一个

using

指令告诉编译器到哪里去寻找程序中使用的类。预定义的类被放在命名空间——相关类的命名集合。.NET的名字空间统称为.NET框架类库。System

名字空间包含预定义Console类和其他有用的类

。123.2

一个简单C#程序:显示一行文本(续.)错误防止提示3.1如果程序中用到的类没有用using指令指定它的名字空间,通常会造成编译错误,出现诸如“Thename‘Console’doesnotexistinthecurrentcontext.”的消息。如果出现这种错误,应检查是否提供了合适的using指令,还要检查using指令,还要检查using指令中的单词是否拼写正确,包括大小写字母是否正确。133.2

一个简单C#程序:显示一行文本(续.)程序员使用空行和空字符来使程序更易于阅读。空行、空字符和制表符一起被称为空白(whitespace),空白被编译器忽略。143.2

一个简单C#程序:显示一行文本(续.)关键字Keywords(有时被称为保留字reservedwords)是C#保留使用的,全部采用小写字母。每一个程序至少有一个由程序员定义的类声明classdeclaration,称为“用户定义类”user-definedclasses。类关键字引入类声明,它的后面紧跟类的名称。153.2

一个简单C#程序:显示一行文本(续.)好的编程经验3.1按照惯例,类名称标识符总是以一个大写字母开头,并将其后的每个单词的首字母都大写。16图.3.2

|

C#关键字和上下文关键字

(部分1.)类名称是一个标识符identifier:一系列的字母、数字和下划线(_)组成。不能以数字开头,也不能包含空格。图3.2中列出了C#关键字的完整清单。3.2

一个简单C#程序:显示一行文本(续.)17图.3.2

|

C#关键字和上下文关键字

(部分2.)在图3.2中的上下文关键字被用于标识符,但为了清晰起见,不推荐这样做。3.2

一个简单C#程序:显示一行文本(续.)183.2

一个简单C#程序:显示一行文本(续.)C#是大小写敏感

casesensitive—大小写字母是有区别的,因此

a1

A1

是不同的(但有效)标识符。常见的编程错误3.2C#是大小写敏感的。用错了标识符的大写和小写字母,通常会导致编译错误。标识符的前面还可以加上@

符号。这个符号表明了单词应当解释为标识符,即使它为关键字。(e.g.@int).193.2

一个简单C#程序:显示一行文本(续.)好的编程经验3.2按照惯例,命名包含一个公共类的文件时应和类同名(加上.cs扩展名),拼写和大小写都一致。

这样的命名有利于确定程序类的位置。203.2

一个简单C#程序:显示一行文本(续.)每个类声明的类体(body)都以一个左花括号

{开始。并以一个对应的右花括号

}来结束类的声明。错误预防提示3.2一旦在程序中输入了左花括号{,就立即输入右花括号}。然后将光标重新定位到二者之间并进行缩进,再进行输入。这一经验有助于避免因遗漏花括号而出现错误。好的编程经验3.3在界定体的左花括号和右花括号之间,应将每个类声明的整个类体都缩进一“级”。这种格式既突出了类声明的结构,又使它更易阅读。选择Edit>Advanced>FormatDocument。可以让IDE格式化代码。213.2

一个简单C#程序:显示一行文本(续.)好的编程

经验3.4设置愿意采用的缩进量,然后一致地使用它。也可以使用Tab键来来产生缩进,但不同的文本编辑器的制表符长度可能不同。推进每个缩进三个空格。在3.3中讲解了如何进行这种设置。常见的编程错误3.3如果花括号不成对出现,则是一种语法错误。223.2

一个简单C#程序:显示一行文本(续.)标识符后面的圆括号Parentheses表示它是一个称为方法的程序构建块

。类声明中通常包含一个或多个方法。方法名采用与类名相同的大小写惯例。对每个应用程序,类中必须有一个Main方法;否则程序将不能运行。方法能够执行任务,并在完成任务后返回信息。关键字void

表示这个方法在完成任务后不返回任何信息。233.2

一个简单C#程序:显示一行文本(续.)方法体声明以左花括号{开始,以对应的右花括号}结束。好的编程经验3.5和类声明一样,在界定方法体的左花括号和右花括号之间,应将每个方法声明的整个方法体都缩进一级。这种格式使方法的结构更突出,也使方法声明更易读。243.2

一个简单C#程序:显示一行文本(续.)在双引号之间的字符表示是字符串strings。

在字符串中的空白符不会被编译器忽略。Console.WriteLine

方法实现在控制台窗口中显示一行文本。括号中的字符串是Console.WriteLine

方法的参数。Console.WriteLine

方法的作用在控制台窗口中显示参数(也叫输出)。253.2

一个简单C#程序:显示一行文本(续.)一个方法一般由一条或多条语句组成,执行方法的任务。(语句:statements)多数语句以分号结束。(分号:semicolon)常见的编程错误3.4在语句的结尾省略分号是一个语法错误。263.2

一个简单C#程序:显示一行文本(续.)错误防止提示3.3当编译器报告语法错误时,错误可能不在错误消息所指的行中。首先要检查报告错误的行,如果该行没有语法错误,则要检查前面的几个行。好的编程经验3.6在方法体或类声明的后面,进行注释有利于提高程序的可读性。273.3

在VisualC#Express中创建一个简单的程序创建控制台应用程序r选择“文件”

File

>“新建”-“项目”

New

Project…显示“新建项目”对话框

(Fig.

3.3)。选择“控制台应用程序”Console

Application

模板。在对话框的名称栏中,输入Welcome1,并单击“确定”

OK

创建工程。283.3

在VisualC#Express中创建一个简单的程序(续.)Projectname图.3.3

|用新建工程创建控制台应用程序

工程名293.3

在VisualC#Express中创建一个简单的程序(续.)IDE现在包含了打开的控制台应用程序。IDE使用的代码配色方案称为“语法颜色高亮”

syntax-colorshading

,可以帮助程序员直观地区分程序元素。303.3

在VisualC#Express中创建一个简单的程序(续.)图.3.4

|打开控制台程序的IDE编辑器窗口

313.3

在VisualC#Express中创建一个简单的程序(续.)设置IDE显示行号,选择“工具”

Tools

>“选项”

Options….在对话框中显示(图.

3.5),单击对话框的左下方的“显示所有设置”

Showallsettings

复选框。展开左边的“文本编辑器”TextEditor的节点

,并选择“所有语言”AllLanguages.在右侧,选中“行号”Linenumbers

复选框。注:由于VisualStudio版本不同,设置稍有差异。323.3

在VisualC#Express中创建一个简单的程序(续.)图.3.5

|修改IDE的设置333.3

在VisualC#Express中创建一个简单的程序(续.)设置代码缩进三个字符:在选项对话框中,展开左面板中C#节点并并选择制表符。确保选中插入空格。缩进大小和制表符大小都输入。.单击“确定”保存设置。关闭对话框转入编辑窗口。343.3

在VisualC#Express中创建一个简单的程序(续.)重命名程序文件,单击“解决方案资源管理器”窗口中的Program.cs

文件,在属性窗口中显示它的属性(图.

3.6).改变文件名为Welcome1.cs。353.3

在VisualC#Express中创建一个简单的程序(续.)图.3.6

|在Properties

窗口中重命名程序文件

单击

Program.cs

,显示它的属性在此处输入Welcome.cs,重命名文件FileName

属性属性窗口SolutionExplorer363.3

在VisualC#Express中创建一个简单的程序(续.)智能感应IntelliSense

列出类的成员,包括方法的名称。当输入时,VisualC#Express会高亮显示第一个成员,输入匹配全部字符,然后显示工具提示包含这个成员的描述。你既可以输入全部的成员名称,也可以双击列表中成员名或按Tab键来完成输入。当智能感应窗口显示时,按Ctrl

键使窗口透明以致于可以看见窗口后面的代码。373.3

在VisualC#Express中创建一个简单的程序(续.)图.3.7

|

VisualC#Express.的智能感应特点

键入的部分名称智能感应窗口最匹配的项被高亮显示工具提示描述了被高亮显示的项383.3

在VisualC#Express中创建一个简单的程序(续.)当你输入开始圆括号字符,(,在方法名之后,会显示

参数信息ParameterInfo窗口(图.

3.8)。这个窗口包含方法参数的信息。向下箭头参数信息窗口向上箭头图.3.8

|

参数信息窗口

向上向下箭头允许通过滚动来加载方法393.3

在VisualC#Express中创建一个简单的程序(续.)保存程序,选择“文件”

File

>“保存全部”

Save

All

显示保存工程对话框。

在“位置”Location

文本框中,指定想要保存的目录。选择“为解决方案创建目录”

Create

directory

for

solution

复选框并单击“保存”Save。403.3

在VisualC#Express中创建一个简单的程序(续.)编译程序,选择“生成”

Build>“生成解决方案”

BuildSolution。运行程序,选择“调试”

Debug

>开始执行StartWithoutDebugging(或按Ctrl+F5)。这样就会调用Main方法。图3.10显示了程序的执行结果,在控制台窗口显示

。(控制台也就是命令窗口CommandPrompt)413.3

在VisualC#Express中创建一个简单的程序(续.)图.3.9

|在图.

3.1中执行程序.

控制台窗口423.3

在VisualC#Express中创建一个简单的程序(续.)错误防止提示3.4当学习编程时,有时“停止”正在运行的程序以便

了解编译的语法错误信息。试图移去图Fig.3.1中的分号或括号,然后重新编译应用程序,看被遗漏的错误信息。433.3

在VisualC#Express中创建一个简单的程序(续.)当输入代码时,IDE通过语法颜色或语法错误。语法错误表明违反了VisualC#创建应用程序的规则。当语法错误产生时,IDE会用红色标注错误,并显示一个错误描述的窗口。(图.

3.10).443.3

在VisualC#Express中创建一个简单的程序(续.)图.3.10

|

IDE中的语法错误消息故意省略分号(语法错误)表明语法错误的波浪线错误描述错误清单窗口453.3

在VisualC#Express中创建一个简单的程序(续.)

错误防止提示3.5一个语法错误可能导致在错误清单窗口中出现多条错误信息。改正一个错误后,重新编译程序时可能会消除多个后续的错误消息。因此,看到并知道如何修改一个错误时,应先改正它并重新编译。这样可能消除多个其他的错误信息。46图3.11所示的Welcome2类使用了两条语句,产生如前面的例子图

3.11所示相同的输出。与WriteLine不同,Console类Write方法不能将光标的位置定位到控制台程序屏幕下一行的开始。3.4

修改C#程序47图.3.11|用多条语句显示一行文本.Write

方法不会将光标移动到新的一行3.4

修改C#程序(续.)Welcome2.cs48通过使用新行符可以用单条语句显示多行文本。与空格符和制表符一样,新行符也是空白符。图3.12的应用程序输出4行文本,用新行符表明什么时候开始新行。OutlineWelcome3.cs图.3.12|用单条语句显示多行文本493.4

修改C#程序(续.)反斜杠backslash(\)被称为转义符escapecharacter,并且它是转义序列escape­sequence的一个字符。转义序列\n表明新行符newlinecharacter。图

3.13列出了几个常用的转义序列并描述了在控制台窗口中如何输出。503.4

修改C#程序(续.)Fig.3.16

|

Somecommonescapesequences.图.3.13|一些常用的转义序列S51Console的Write和WriteLine方法的功能就是现实格式化的数据。图3.14展示了另外一种方法来使用WriteLine方法。OutlineWelcome4.cs图.3.14|用字符串格式化方式显示多行文本.WriteLine方法的第一个参数是格式化字符串formatstring

,可以包含预置文本fixedtext

和格式项formatitems。3.5

用Console.Write

Console.WriteLine

格式化文本523.5

用Console.Write和Console.WriteLine

格式化文本当一个方法需要多个实参时,参数用逗号分隔。(commas:逗号)好的编程经验3.7在每个实参列表的逗号之后加一个空格(,)可以提高程序的可读性。 大语句可以分成多行,但是存在一定的限制。常见的编程错误3.5将一条语句中的标识符或字符串从中间断行分开是一个语法错误。533.5

用Console.Write和Console.WriteLine

格式化文本

WriteLine方法的第一个参数是一个格式化字符串formatstring

,由固定文本fixedtext

和格式项

formatitems组成.每个格式项都是一个值的占位符placeholder,WriteLine相对应的其它额外的参数:{0}是第一个额外的参数占位符。

{1}是第二个额外的参数占位符,等等。格式项也可以包含可选的格式信息。543.6

另一个C#程序:整数相加程序将数值和其他数据保存在计算机内存中,并通过称为变量variables的元素访问这些数据。变量variable

存放在内存中,存储在变量中在以后的程序中可以被使用。变量声明语句

variabledeclarationstatement(也叫定义

declaration)界定了变量的名称和类型一个变量的名称使程序访问存储在内存中的变量——名称可以是任何有效的标识。

一个变量的类型界定了在类存中存储什么类型的信息。55三个变量声明为整形intOutlineAddition.cs(1of2)图.3.15|显示通过键盘输入的两个数的值.(Part1of2).Console.ReadLine()读取用户输入的信息,用

Convert.ToInt32

转换成为整形值。将三个变量声明为整形用户提示信息56OutlineAddition.cs(2of2)图.3.15|显示通过键盘输入的两个数的值(Part2of2).573.6

另一个C#程序:整数相加(续.)int

变量类型存储整形integer

值(数字如7,–11,0

31914).float,double

decimal

类型指定实数(带有小数点的十进制数)。char

类型表示单个字符。这些类型成为简单类型simpletypes。简单类型的名称是关键字因而必须是小写字母

。583.6

另一个C#程序:整数相加(续.)变量声明语句可以被分成几行,变量名用逗号分隔。(例如.,一个变量名的逗号分隔列表)。相同类型的变量可以声明在一行或多行中。好的编程经验3.8在单独的行中声明每个变量。这种格式变量声明使得很容易插入注释。593.6

另一个C#程序:整数相加(续.)好的编程经验3.9选择有意义的变量名,可使代码具有自说明性,也就是说只需阅读代码本身就可以理解它的功能,而无需查看手册或注释。好的编程经验3.10按照约定,变量名称的第一个字母要小写,而后续所有单词都以一个大写字母开始,这种命名惯例称为小写驼峰规则。(camelcasing:驼峰)603.6

另一个C#程序:整数相加(续.)Console的ReadLine方法等待用户用键盘输入字符并按“回车”键。ReadLine返回下一个用户输入。Convert类的ToInt32方法转换这个字符串为int类型的数据。ToInt32

返回int

值,代表用户的输入。613.6

另一个C#程序:整数相加(续.)一个值用赋值符号存储在变量中。assignmentoperator:赋值符号(=)符号“=”被称为二元运算符binaryoperator,因为它对两块信息或操作数进行操作。赋值语句assignmentstatement将一个值赋给变量。赋值运算符右侧任何内容总是在赋值执行之前计算的。好的编程习惯3.11在二元运算符的两边插入空格可以使它更突出并使代码更可读。623.6

另一个C#程序:整数相加(续.)语句中与值相关的任何部分都是表达式。number1

+

number2的表达式的值就是它们的和。表达式Console.ReadLine()的值就是用户输入的字符串。计算可以在输出语句中执行。633.7

内存概念变量名实际上都对应于计算机中内存的某个位置。每个变量都具有名称、类型、大小和值。在

3.16,计算机会将这个整数值45放入位置number1。图.3.16

|展示变量

number1的名称和值的内存位置.

643.7

内存概念(续.)在图.

3.17,72

被放置在number2.图.3.17

|保存变量number1

和number2的值后的内存位置.653.7

内存概念(续.)在sum

被计算后,内存应如图.

3.18.图.3.18

|计算并保存变量

number1

number2的和之后的内存位置.663.7

内存概念(续.)当一个值被放入内存位置时,这个值替换同一位置以前的,并且前面的值会丢失。当从内存中读值时,过程是非破坏性的nondestructive。

67图.3.19

|

算术运算符算术运算符arithmeticoperators被汇总在图.

3.19。图.

3.19的操作运算符是二元运算符3.8

算术运算符683.8

算术运算符(续.)整除Integerdivision产生一个整数商—整数后面的任何小数都直接删除而不进行四舍五入。C#提供了余数运算符remainderoperator%,它产生整除后的余数。余数操作大多数用在整数操作,但是也可以用于浮点数floats,双精度数doubles,和小数decimals.括号被用在C#表达式中同样也用在代数表达式中。假如一个表达式包含嵌套括号nestedparentheses,最内层的括号表达式优先计算。69图.3.20

|

算术运算符的优先级算术运算符根据运算符优先级operatorprecedence规则来计算,如下的代数运算符也遵循优先级规则。(图.

3.20).3.8

算术运算符(续.)703.8

算术运算符(续.)下面语句中圆圈中的数字表示C#执行操作的顺序。

乘法、求余和除法运算会首先按从左到右的顺序执行(即它们的结合律是从左到右的),因为与加法和减法相比,它们具有更高的优先级。然后进行加法和减法运算。这些运算是从左到右的。713.8

算术运算(续.)为了更好地理解运算符优先级的规则,考虑下面这个二次多项式second-degreepolynomial

(y=ax2+bx+c):723.8

算术运算(续.)在代数式中,为了使代码更加清楚加入非必要的括号是可接受的(redundant:不需要的)。前面的赋值语句可以用括号来强调它的项,如下所示:y=(a*x*x)+(b*x)+c;

733.8

算术运算符(续.)图.3.21

|二次多项式中的求值.743.9

判断:相等运算符与关系运算符Fig.3.25

|

Equalityandrelationaloperators.(Part1of2.)条件就是一个结果为真或假的表达式。条件语句可以由相等运算符equalityoperators(==and!=)和关系运算符relationaloperators(>,<,>=and<=)构成,如图.

3.22.图.3.25|相等运算符和关系运算符.(Part1of2)753.9

判断:相等运算符与关系运算符(续.)Fig.3.25

|

Equalityandrelationaloperators.(Part2of2.)图.3.22|相等运算符和关系运算符(Part2of2)763.9

判断:相等运算符与关系运算符(续.)常见的编程错误3.6混淆相等运算符==和赋值运算符=

,会导致逻辑错误和语法错误。这个相等运算符表示,而赋值运算符相当于“获得”或“获得某个值”。为了避免混淆,有人讲这个相等运算符读作“双等于”或“等于等于”。77图

3.26中使用6个if语句比较用户输入的两个整数。OutlineComparison.cs(1of3)图.3.26|用if语句、相等运算符和关系运算符比较整数(Part1of3).78Comparenumber1andnumber2forequality.OutlineComparison.cs(2of3)Fig.3.26|用if语句、相等运算符和关系运算符比较整数

(Part2of3).79OutlineComparison.cs(3of3)图.3.26|用if语句、相等运算符和关系运算符比较整数

(Part3of3).803.9

判断:相等运算符与关系运算符(续.)如果if条件语句为真时,那么与if相关的语句将执行。

if语句总是以if关键字开头,后接用圆括号括起来的条件。

if

语句的语句体总是一条语句。常见的编程错误3.7遗忘if语句的左括号或右括号是一种语法错误———圆括号是必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论