C#程序设计-ppt课件(完整版).pptx

上传人:可**** 文档编号:77248330 上传时间:2023-03-13 格式:PPTX 页数:351 大小:4.05MB
返回 下载 相关 举报
C#程序设计-ppt课件(完整版).pptx_第1页
第1页 / 共351页
C#程序设计-ppt课件(完整版).pptx_第2页
第2页 / 共351页
点击查看更多>>
资源描述

《C#程序设计-ppt课件(完整版).pptx》由会员分享,可在线阅读,更多相关《C#程序设计-ppt课件(完整版).pptx(351页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C#C#程序设计程序设计第1章 Visual Studio 2008 简介为了便于复杂程序开发,开发人员将数据和与之相关的运算打包到一起,统一考虑,从而形成了类。类实际就是数据和相关处理的代码的封装体。它也构成了面向对象编程的核心。本章将给大家详细讲解C#语言中的类的用法。1.1 .NET框架.NET框架(.NETFramework)由微软开发,是一个致力于敏捷软件开发(Agilesoftwaredevelopment)、快速应用开发(Rapidapplicationdevelopment)、平台无关性和网络透明化的软件开发平台。NET框架的目的是便于开发人员更容易地建立Web应用程序和Web

2、服务,使得Internet上的各应用程序之间可以使用Web服务进行沟通。1.1.1 .NET框架.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。从层次结构来看,.NET框架又包括三个主要组成部分:通用语言运行时(CLR,CommonLanguageRuntime)、基类库(BaseClassLibrary)和上层的两类应用模板Windows应用程序模板(WinForms)和基于ASPNET的网络应用程序模板(WebForms和WebServices)1.1.1 .NET框架图1-1 .NET框架1.公共语言运行库(CRL)通用语言运行时(CLR)提供了程序代码可以

3、跨平台执行的机制,是.NET框架的核心。当使用.NET程序设计语言编写好程序代码后,它会被编译两次。第一次是将程序代码和基础类组合编译成中间语言(IL,IntermediateLanguage),第二次是在执行时,CLR会将中间语言(IL)编译成运行平台的CPU可以执行的本地代码,如同1-2所示。正是这样的运行模式,使得.NET平台框架开发出来的程序可以在在任何具有CLR的平台上执行,实现一次编写,到处运行。1.公共语言运行库(CRL)图图1-2 .NET 程序的两次编译程序的两次编译2.基类库CLR的上层是.NET的基类库,它提供一个可以供不同编程语言调用的、分层的、面向对象的函数库。这组基

4、类库包括从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的,层次化的,可扩展的编程接口。3.NET Framework 类库.NETFramework类库是一个与公共语言运行库紧密集成的可重用的类型集合,用于应用程序开发的一些支持性的通用功能。主要包括以下类库:数据库访问(ADO.NET等)、XML支持、目录服务(LDAP等)、正则表达式和消息支持。4.应用程序开发技术.NET框架的最上层是应用程序,可以分为面向网络应用的ASP.NET程序和面向Windows系统的Windows应用程序,这两类应用程序均可使用C#、VC+.NET、VB.NET等来编写。1.1.2 .NET框架版本.

5、NET1.0发行于2002年,被称作VisualStudio.NET2002。.NET框架1.1发行于2003年,被称作VisualStudio.NET2003。.NET框架2.0发行于2005年10月,.NET框架2.0的组件都包含在VisualStudio2005和SQLServer2005里面。.NET框架3.5发行于2007年,增加了对支持AJAX和LINQ(Language-IntegratedQuery)的支持,该版本随VisualStudio2008一起发布。.NET框架4.0主要增加了并行支持,英文版于2010年4月12日推出。1.2 C#语言C#语言是一种面向对象的程序设计语

6、言,是微软.NET公共语言运行环境中内置的核心程序设计语言。使用C#语言可以开发在.NETFramework上运行的多种应用程序,包括:控制台应用程序、Windows窗体应用程序、Web应用程序以及Web服务等。1.2 C#语言C#语言的主要特点如下:1 语法简洁语法简洁 2支持跨平台3 面向对象面向对象 4 完整的安全性完整的安全性5语言的兼容性和灵活性6与Web完美结合7版本可控1.3 Visual Studio 2008编程环境MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,你可以理

7、解为一个功能强大的编辑器。1.3.1 Visual Stdio 2008的新特性VisualStdio2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。1.NET Framework 对重定向的支持对重定向的支持 2 ASP.NET AJAX和和JavaScript智能客户端支持智能客户端支持 3全新的全新的Web开发体验开发体验 4编程语言方面的改进和编程语言方面的改进和LINQ 5浏览浏览.NET Framework库源码库源码1.3.2 Visual Studio 2008的安装1Visual Studio 2008的环境要求的环境要求VisualS

8、tudio2008对系统环境有较高的要求。(1)硬件要求中央处理器(CPU):建议采用1GHz或以上32位(x86)或者64位(x86)处理器。内存:至少配置为1GB(32位),推荐2GB(64位)内存以上。硬盘:20GB硬盘(32位)或40GB硬盘(64位)以上可用硬盘空间。显示器:推荐配置1024768分辨率以上的全彩显示器,以便方便地显示开发环境提供的多个不同功能窗口等。1.3.2 Visual Studio 2008的安装1Visual Studio 2008的环境要求的环境要求(2)软件要求操作系统:Windows7、WindowsVista或WindowsXP。2Visual St

9、udio 2008的安装的安装1.4 创建C#项目C#可以用于创建控制台(Console)应用程序:仅使用文本、运行在DOS窗口中的应用程序。由于控制台应用程序结构比较简单,在程序设计语言的语法学习阶段使用这类程序作为实例,将有助于简化问题的讨论,所以我们将以控制台程序为例讲解创建C#程序的过程。1.4.1 C#控制台应用程序的创建步骤在MicrosoftVisualStudio2008(简称为VS2008,以下皆同)中创建一个C#控制台应用程序的主要步骤如下:(1)启动运行“MicrosoftVisualStudio2008”;(2)选择项目类型为控制台应用程序,并指定项目名称及其保存位置;

10、(3)在应用程序编辑环境中输入程序代码;(4)调试运行程序。1.4.3 C#控制台应用程序的结构一个C#控制台应用程序主要由以下几部分构成。1导入其他系统预定义元素导入其他系统预定义元素高级程序设计语言总是依赖许多系统预定义元素,为了在C#程序中能够使用这些预定义元素,需要对这些元素进行导入。上例创建的控制台应用程序中,使用下述代码段导入了对其他命名空间的引用:using System;using System.Collections.Generic;using System.Linq;using System.Text;1.4.3 C#控制台应用程序的结构一个C#控制台应用程序主要由以下几部

11、分构成。1导入其他系统预定义元素导入其他系统预定义元素高级程序设计语言总是依赖许多系统预定义元素,为了在C#程序中能够使用这些预定义元素,需要对这些元素进行导入。使用下述代码段导入了对其他命名空间的引用:using System;using System.Collections.Generic;using System.Linq;using System.Text;2命名空间命名空间 C#程序是用命名空间来组织代码,使用关键字namespace和命名空间标识符(命名空间名字)构建用户命名空间,空间的范围用一对花括号限定,如下所示:namespaceHello/默认情况下命名空间名与解决方案名相

12、同1.4.3 C#控制台应用程序的结构3类类 类必须包含在某个命名空间中(例如namespaceHello),使用关键字class和类标识符(类名,默认为Program)构建类,类的范围使用一对花括号限定,如下所示:classProgram1.4.3 C#控制台应用程序的结构4Main()方法方法 每个应用程序都有一个执行的入口,指明程序执行的开始点。C#应用程序的入口点用Main()方法标识,程序的执行总是从Main()方法开始,后面的括号中即使没有参数也不能省略。一个C#应用程序必须有、而且只能有一个Main()方法。1.4.3 C#控制台应用程序的结构5方法中的方法中的C#代码代码 在方

13、法体(方法的左右花括号之间)中书写实现方法逻辑功能的代码。1.4.3 C#控制台应用程序的结构1严格区分大小写严格区分大小写 C#是一种大小写敏感的语言,字母大小写不同的标识符被视为不同的标识符。例如“name”和“Name”在C#中就是不同的标识符。1.4.4 C#程序代码的基本语法规则2语句书写规则语句书写规则(1)每个语句都必须用一个分号(“;”)作为结尾。(2)C#是一种块结构的编程语言,所有的语句都是代码块的一部分。每个代码块用一对花括号(“”、“”)来界定,花括号本身不需要使用分号来结束。一个代码块中可以包含任意多行语句,也可以嵌套其它代码块。(3)标点符号必须是英文标点符号。(4

14、)C#允许在同一个代码行上书写多个语句。(5)作为目前通行的程序代码标准书写规则,代码块的书写广泛采用了缩进格式1.4.4 C#程序代码的基本语法规则3注释信息注释信息 注释信息是程序中不参与执行的部分,仅用于对程序代码加以说明,编译时会将其完全忽略。恰当地使用注释有助于提高程序的可读性,便于软件维护和协作开发。(1)单行注释每一行中双斜杠“/”后的任何内容均作为注释信息,该方式只对本行生效。(2)多行注释从“/*”开始,到“*/”结束,其中的所有内容(可以是一行,或多行)均为注释信息,但注释文字中必须不包含“*/”。1.4.4 C#程序代码的基本语法规则1.4.5 控制台输入/输出通常编写的

15、程序都需要实现一种交互:程序接收一定的数据输入,并对所输入的数据进行处理,最后将处理的结果反馈给用户,也就是输出。1Console.WriteLine()方法方法WriteLine()方法的作用是将信息输出到控制台,并在信息的后面添加一个回车换行符来产生一个新行。1.4.5 控制台输入/输出2Console.Write()方法方法Write()方法和WriteLine()方法类似,都是将信息输出到控制台,但Write()方法输出信息到屏幕后并不产生一个新行,即换行符不会连同输出信息一起输出到屏幕上,光标将停留在所输出信息的末尾。1.4.5 控制台输入/输出3Console.ReadLine()

16、方法方法ReadLine()方法用来从控制台读取一行数据,一次读取一行字符的输入,并且直到用户按下Enter键才会返回,但ReadLine()方法并不接收Enter键。如果ReadLine()方法没有接收到任何输入,或者接收了无效的输入,那么ReadLine()方法将返回null。1.4.5 控制台输入/输出4Console.Read()方法方法Read()方法的作用是从输入流(控制台)读取下一个字符,Read()方法一次只能从输入流读取一个字符,并且直到用户按Enter键才会返回。当这个方法返回时,如果输入流中包含有效的输入,则返回该字符对应的Unicode编码十进制值;如果输入流中没有数据

17、,则返回-1。如果用户输入了多个字符,则Read()方法只返回用户输入的第1个字符,但是,用户可以通过多次调用Read()方法来获取所有输入的字符。主编鲁立张松慧中国水利水电出版社2.1数据类型数据类型是程序设计的基础,在进行程序设计时,必须让计算机了解需要处理的是什么数据,以什么方式保存和显示数据。为此,C#定义了很多数据类型,对程序中声明的保存信息的变量必须说明它的数据类型。本节主要介绍常用的数据类型及其基本用法。第2章 变量与表达式 2.1.1数据类型的分类C#提供的数据类型可以分为两大类,一类是值类型,另一类是引用类型。值类型又划分为简单类型、枚举类型和结构类型;引用类型则分为类类型、

18、接口类型、数组类型和委托类型。2.1.2值类型值类型是一种表示实际值的数据类型,C#的值类型包括:简单类型、枚举类型和结构类型3种。1.简单类型C#提供已经定义好的简单类型,包括:整型、实型、布尔型和字符型。(1)整型整型是指数据的值是整数。根据变量在内存中所占的位数不同,C#语言提供8中整型分别是:短字节型(sbyte)、字节型(byte)、短整型(short)、无符号短整型(ushort)、整型(int)、无符号整型(uint)、长整型(long)、无符号长整型(ulong)。这些不同的整型用来存储不同范围的数值,占用不同的内存空间,数据类型取值范围说明类型指定符sbyte-1281271

19、字节有符号整数byte02551字节无符号整数short-32768327672字节有符号整数ushort0655352字节无符号整数int-214748364821474836474字节有符号整数uint042949672954字节无符号整数Ulong-922337203685477580892233720368547758078字节有符号整数Lulong0184467440737095516158字节无符号整数UL(2)实型实数类型是一种同时使用整数部分和小数部分表示数值的类型,分为单精度(float)、双精度(double)和小数型(decimal),它们的区别在于取值范围和精度不同。计

20、算机对实数的运算能力大大低于整数,单精度类型常用于对精度要求不高的计算,对结果要求精确的使用双精度型,decimal类型适合用于财务和货币计算。数据类型取值范围说明类型指定符float1.510-453.410384字节单精度实数Fdouble5.010-3241.7103088字节双精度实数Ddecimal1.010-287.9102816字节实数M(3)布尔型布尔型(bool数据类型)是只有true和false2个无符号值的类型。如果变量只能表示“是/否”或“真/假”信息的,则将它定义为bool类型;可以将布尔型值赋值给布尔型变量(4)字符类型字符类型用char表示,为单个Unicode字

21、符,一个Unicode字符是2个字节长度;字符包括数字字符、英文字符、表达符号等等,字符型的变量可以用单引号引起来的字符常量直接赋值;不包含任何字符的字符串,称为空字符串。C#中提供转义符,用来表示单引号和反斜杠等特殊的字符常数,在需要表示这些特殊常数的位置,使用这些转义符来代替字符。常用转义符如表2-3所示。表2-3常用转义符转义符字符名称单引号双引号反斜杠0空字符a发出一声响铃b退格r回车n换行2.结构类型程序设计中,往往需要一些复杂的数据类型来表示数据。C#中使用结构类型(Structure)把多个不同类型的数据组合到一起。结构类型可以定义常数、字段、属性、方法、索引器、操作符和嵌套类型

22、,使用结构类型的优点是节省内存空间,可以不使用继承或引用标示。结构体是一种复合的数据类型,它允许用其他数据类型构成一个结构类型,而一个结构类型变量内的所有数据可以作为一个整体进行处理。定义结构类型的语法如下:struct结构体标示符public类型成员变量名1;public类型成员变量名2;public类型成员变量名3;.;3.枚举类型枚举是这样的种数据类型:它的值有固定的范围,在逻辑上是密不可分的整数值,这些值可以用有限个常量来叙述,例如:星期、月份等。枚举类型使用关键字enum定义,语法如下:enum枚举名标示符1=整型常数,标示符2=整型常数,标示符3=整型常数,标示符4=整型常数,.2

23、.1.3引用类型引用类型又称对象,引用类型是不直接存储变量值的,存储的是引用值的地址。使用时,引用也可以为null,这表示当前不引用或不指向任何对象。C#的引用类型有类、数组、委托和接口4种。这里简单介绍object(对象类型)和string(字符串类型)两个类。2.1.4类型转换在C#中,有些数据类型可以转换为另一种数据类型。如果是一种值类型转换为另一种值类型,或者一种引用类型转换为另一种引用类型,比较常用的转换方式是:隐式转换与显式转换。对于不同值类型之间的转换,可以使用Convert类提供的静态方法。1.隐式转换隐式转换就是将低精度数值转换为高精度数值,转换顺序如表2-4所示。若,两种变

24、量类型是兼容的或目标类型的取值范围大于源类型,这样的类型转换就由系统自动完成。例如:inta=100;/定义整型变量a并赋值floatb=a;/整型变量a隐式转换为浮点数赋值给b表2-4隐式转换源类型与目标类型对应表源类型可以转换的目标类型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、float、double、decimalcharushort、int、uint、long、float、double、decimalintlong、float、double、decimaluintlong、ulong、f

25、loat、double、decimalshortint、long、float、double、decimalushortint、uint、long、float、double、decimallongfloat、double、decimalulongfloat、double、decimalfloatdouble2.显式(强制)转换在不满足隐式转换的情况下,必须使用显式(强制)转换。显式(强制)转换是一种指令,该指令通过编译器强制将一种类型转换为另一种类型。语法为:(目标类型)变量或表达式例如:inta=65;/定义整型变量a并赋值shortb=(short)a;/将a强制转换为短整型charc=(c

26、har)a;/将a强制转换为字符型3.Convert类C#的Convert类提供多种方法来进行显式(强制)转换,语法为:目标类型=Convert.转换方法(源类型)例如:intnum;/定义整型变量numnum=Convert.ToInt16(78);/将字符串78强制转换为整型并赋值给num4.ToString()方法ToString()方法主要用于将一些类型的变量转换为字符串类型。语法为:变量名.ToString()例如:inta=100;strings=a.ToString();字符串变量s的值为100。5.Parse()方法Parse()方法用于将特定格式的字符串转换为数值类型。语法格

27、式为:数值类型名.Parse(字符串表达式)但是,语法格式中的“字符串表达式”的值必须符合“数值类型名”对应的数值格式要求。例如:intx=int.Parse(123);/将123转换为整型赋值给xinty=int.Parse(123.4);/因为123.4不符合整型的格式,所以转换失败inty=float.Parse(123.4);/因为123.4符合浮点数型的格式,所以转换成功2.1.5装箱与拆箱对于值类型与Object类型之间的转换,可以用装箱和拆箱技术来实现。C#的类型系统是统一的。它使值类型可以被看成是对象,装箱转换允许将值类型隐式转换为引用类型。装箱的过程是:首先分配一个对象实例,

28、然后将值类型的值复制到实例中。拆箱过程是:首先检查对象实例是否为给定值类型一个装了箱的值,然后将该值从实例中复制出来。1.装箱装箱操作将值类型隐式转换为Object类型,为装箱数值分配对象实例。例如:inti=123;objectob=i;/装箱上述语句执行结果是在堆栈中创建对象ob,该对象引用了堆中的int类型,该数值是赋给变量i的数值备份。2.拆箱拆箱操作是显式的将object类型转换为值类型。下面语句演示了装箱和拆箱。inti=123;objectob=i;/装箱intj=(int)ob;/拆箱可以看出,拆箱是装箱的逆过程,要注意的是,装箱和拆箱需要遵守类型兼容的原则。2.2变量与常量知

29、道了C#有哪些数据类型以及如何将一种数据类型转换为另一种数据类型,我们还需要知道C#中有哪些常量和变量以及如何定义常量和变量。2.2.1变量变量用来表示一个数值、一个字符串值或者一个类的对象。变量存储的值可能会发生更改,但变量名保持不变。1.变量声明C#中,变量必须先声明后使用。声明变量的语法为:类型标识符变量名;或类型标识符变量名1,变量名2,变量名3.;例如,下面语句声明了一些变量:intnum;/声明整型变量numfloatsum;/声明浮点型变量sumcharch;/声明字符型变量ch2.变量命名规则C#在变量声明时,变量名的命名应该遵守一些基本规则:变量名长度不能超过255个字符。变

30、量名在有效的程序范围内是唯一的。变量名不能是关键字(保留字),但可以嵌入使用关键字到变量名。变量名用字母开头,不要使用数字开头。关键字是一种高级程序设计语言中属于语言成分的特殊标识符,用户是不能使用这些标识符定义各种名称的。2.2.2变量的种类C#定义了7种变量,即静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量。2.2.3常量常量就是值在程序整个生命周期内始终不变的量,使用关键字const声明。在使用中,不可以对常量进行赋值。常量声明的语法为:访问修饰符const类型标识符常量名=值;例如:publicconstdoublePI=3.1415926;constintdayi

31、nyear=365;语法中方括号表示其中的内容是可选项,如果采用逻辑符号“|”表示“|”两端的内容是或者得关系。2.3运算符与表达式运算符是指在表达式中执行哪些操作的符号。表达式则由常量、变量、对象以及各种运算符组成。2.3.1运算符分类按照操作数分类,C#语言提供3大类运算符。一元运算符:带一个操作数的运算符称为“一元”运算符,如i+。二元运算符:带两个操作数的运算符称为“二元”运算符,如x+y。三元运算符:带三个操作数的运算符称为“三元”运算符,C#中只有一个三元运算符,即条件运算符“?:”。2.3.2算术运算符C#中算术运算符就是用于常规运算功能的符号,包括:加法运算符(+)、减法运算符

32、(-)、乘法运算符(*)、除法运算符(/)、求余运算符(%)、自增运算符(+)、自减运算符(-)、要注意的是乘法、除法运算符只适用于整数和实数之间的操作;默认运算返回值与精度高的类型相同。求余运算符用来求除法的余数。2.3.3赋值运算符赋值运算符用于改变变量的值,即为变量赋值。C#中提供了一个简单赋值运算符“=”和多个复合赋值运算符包括:+=、-=、*=、/=、%=、=、&=、=和|=。赋值运算符是左结合,将右边的操作数的值赋给左边的操作数,左操作数必须是变量。C#也可以对变量进行连续赋值,此时赋值运算是从右向左进行。2.3.4关系运算符关系运算符用于在程序中比较两个值大小,关系运算的结果是布

33、尔型。关系运算符包括:=、!=、=。2.3.5逻辑运算符逻辑运算中,使用逻辑运算符将运算对象连接起来形成逻辑表达式,逻辑运算只有两个结果:true和false,表示真和假。2.3.6三目运算符?:该运算符是根据布尔表达式的值返回两个值中的一个。如果条件为真,则返回第一个值;否则,返回第二个值。语法为:(布尔表达式)?值1:值22.3.7运算符优先级当一个表达式包含多个运算符时,表达式的值就由各运算符的优先级决定。表2-7为运算符的优先级描述。表2-7运算符优先级(由高到低)特殊运算符()一元运算符+(正)、-(负)、!(逻辑非)乘/除运算符*、/、%加/减运算符+、-移位运算符关系运算符、=、

34、is比较运算符=、!=逻辑与运算符&逻辑异或运算符逻辑或运算符|条件与运算符&条件或运算符|三目运算符?:赋值运算符=、+=、-=、*=、/=、%=2.4输入与输出程序设计中,输入与输出是程序的必需功能。数据的输入与输出方式有控制台方式和文件方式两种。控制台是一个操作系统窗口,用户可通过键盘输入文本,并从显示器读取文本输出。C#语言的控制台I/O主要通过命名空间System中的Console类实现的。该类给出了标准的输入和输出方法。1.控制台输入控制台输入包含两个实现控制台输入的方法:Read()和ReadLine()。Read()方法每次从标准输入流中读取一个字符(此时程序运行到Read()

35、语句暂停,直到输入任意字符并按回车键才返回继续运行),程序将接收的字符作int型值返回给变量。如果输入流没有字符,则返回-1。Read()方法使用的语法格式为:Console.Read();ReadLine()方法用于从控制台一次读取一行字符串,直到遇到回车键才返回读取的字符串,但此字符串不包含回车键和换行符;如果接收无效字符串,则ReadLine()方法返回null。ReadLine()方法的语法格式为:Console.ReadLine();2.控制台输出控制台输出输出包含两个方法:Write()和WriteLine()。它们都可以输出一个或多个值,区别在于Write()方法输出后没有换行符

36、,而WriteLine()方法输出后有换行符。两个方法都有各种不同的重载,为输出多个不同类型数据提供支持。语法格式如下:Console.Write(“格式字符串”,参数表);或Console.WriteLine(“格式字符串”,参数表);小结本章主要介绍了C#语言中的数据类型、变量与常量、以及运算符与表达式。其中,重点是掌握数据类型与变量,以及表达式的使用方法,为后续编写C#程序代码奠定基础。主编鲁立张松慧中国水利水电出版社3.1选择语句C#语言提供了条件语句(即if语句)和多路分支语句(即switch语句)实现选择结构。第3章 流程控制与函数 3.1.1if语句条件语句即if语句,if语句的

37、基本功能是:判断给定的条件是否满足,从而选择执行给出的对应操作。if语句有三种基本形式:if、if-else、if-else-if。1.双分支的if语句提供两种选择。格式:if(表达式)语句1else语句2功能:先计算表达式的值,根据表达式的值提供两种选择,当表达式值为真(即非0),选择执行语句1;否则,选择执行语句2。使用此形式的if语句就可以根据表达式的值在语句1和语句2中选择一个执行。例如:if(ab)Console.WriteLine(较大的是0,a);elseConsole.WriteLine(较大的是0,b);此程序段的功能是选择输出两个变量a和b中较大的值。说明:(1)书写时表达

38、式两侧的圆括号不可少。(2)表达式通常是逻辑表达式或关系表达式,也可以是任意类型的表达式(如整型、实型、字符型等)。(3)if和else是C#语言的关键字,且else不是独立的语句,它是if语句的一部分。使用时else必须与if配对,共同组成一条if-else语句。(4)“语句1”称为if子句,“语句2”称为else子句,可以是单条语句,也可以是用“”括起来的复合语句,分别代表双分支选择结构的分支之一,不要把子语句理解为独立的语句。2.单分支的if语句如果只提供一种选择则构成了单分支的if语句。格式:if(表达式)语句功能:先计算表达式的值,当表达式的值为真(即表达式的值非0),执行其后的语句

39、;否则,无操作,顺序执行if语句后面的语句。如:if(a0)a=-a;Console.WriteLine(结果为:0,a);3.多分支的if语句如果提供多种选择,则可以采用if-else-if形式的语句(即多分支选择结构)。格式:if(表达式1)子语句1elseif(表达式2)子语句2elseif(表达式3)子语句3elseif(表达式n)子语句nelse子语句n+1功能:自上而下有序地判断条件表达式,一旦发现某个表达式的值为真,则执行该表达式后面的子语句,其余子语句不被执行。如果所有条件表达式的值均为假,执行最后一个else分支后的子语句n。说明:(1)最后一个else常作为缺省条件,即当前

40、面的所有条件表达式测试都失败后,执行它后面的子语句n+1。(2)无论有多少分支的if-else-if语句,它们都是一个if语句,在分析程序时尤其要注意这点,不要把一个语句理解为多个语句。(3)语句中的else和if之间均有空格,不要写成elseif形式。3.1.2switch语句switch语句,它的功能和if-else-if类似,switch语句可以根据表达式的不同取值,直接进行多分支选择处理,使程序的结构清晰明了,减少一些嵌套错误。switch语句的格式为:switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n

41、+1;功能:switch语句对表达式进行连续测试。先计算switch后表达式的值,然后将该值与各case后面的常量表达式的值进行比较。当其值与某一常量表达式的值相同时,就从该case后面的语句开始执行,直到switch语句结束时为止;若其值与所有的常量表达式的值都不相同,就执行default后面的语句,若不存在default,则不进行任何处理。说明:(1)switch后面的“表达式”可以为任何类型。(2)switch语句与if语句不同,switch通过测试表达式的值与case常量表达式的值是否相等来进行分支的选择,而if语句是通过判断表达式的值是否为0(即真/假)来实现选择结构。(3)同一个s

42、witch语句中,每一个case常量表达式的值必须各不相同。(4)switch语句中表达式的类型必须与各case常量表达式的类型一致,否则无法进行匹配。(5)各个case和default的出现次序不影响执行结果。(6)switch语句中允许出现空的case语句,即多个case共用一组执行语句。(7)switch语句通常和break语句联合使用。break语句也称为间断语句,可以在switch语句中的case语句之后加上break语句。break语句的作用是跳过后面的case部分,结束switch语句。因此如果没有break语句,程序在执行完相应的case语句后不会退出,而是继续执行下一个cas

43、e语句,直到switch语句结束,而有了break语句后每当执行到break语句时,立即跳出switch语句体,从而起到真正的分支作用。3.1.3嵌套条件的if语句在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下:if(表达式1)if(表达式2)语句1else语句2elseif(表达式3)语句3else语句4说明:(1)上面为嵌套的一般形式,其对应的N-S图为图4-5。注意,嵌套的if语句即可作为if的子语句,也可以作为else的子语句。(2)通过嵌套,上面的语句共包含三个条件表达式,对应为具有四个分支的选择结构。(3)此形式中包含外层的if语句和内层嵌套的if语句,嵌套也

44、可以是两层以上。(4)注意嵌套语句中if与else的配对关系。原则是:从最内层开始,else总是与它上面离它最近的尚未配对的if配对。3.2循环语句循环语句可以重复执行一个程序模块,C#语言中的循环语句有while语句、do-while语句、for语句和foreach语句。其中foreach语句用于集合的循环操作。循环语句每次在执行前需要判断循环条件是否成立,如果满足则重复执行循环体语句,直到条件语句不成立才退出。循环结构可以看成是一个条件判断语句和一个回转语句的组合。这样就不用多次书写同一代码。3.2.1while语句while语句是一个条件循环语句,在条件为true的情况下,会重复执行循环

45、体内的语句。直到条件为false为止。while语句一般用于循环次数不确定的场合,while语句语法如下:while(条件表达式)循环体循环体内的程序可能会执行多次,也可能一次也不执行。说明:(1)在整个循环过程中,需要有一个循环控制变量发生变化,使得循环趋向结束;如果没有修改该变量的值或没有这个趋势,有可能导致循环无法终止。(2)在循环体中如果包含break语句,当程序执行到break语句时,就会结束循环;执行循环结构之后的语句。3.2.2do-while语句do-while语句与while语句类似,区别在于:它首先执行循环体代码,然后判断循环条件是否满足,也就是说,do-while循环不论

46、条件是否满足,都至少要执行一次循环体内容;while循环如果条件不满足,循环体将不会执行。do-while语句的语法格式为:do循环体while(条件表达式)3.2.3for语句for循环是能控制循环次数的循环,for循环语句使用一个循环控制变量,通过将该变量初始化、循环控制条件以及按规律修改的循环变量值都写在同一程序中。只要循环控制条件为true,则重复执行循环代码程序,直到循环控制条件为false时退出循环。for语句的语法格式为:for(初始值设定;循环条件;循环控制)循环体说明:(1)执行for循环语句时,首先执行初始值设定。(2)判断循环条件值是true还是false,若循环条件表达

47、式的值为false,则转到步骤(4)执行;若循环条件表达式的值为true,则执行循环体的语句,然后求循环控制表达式的值。(3)循环控制表达式的值为true,转回步骤(2)。(4)结束循环,执行程序中for循环之后的语句。3.2.4foreach语句foreach语句特别适合对集合对象的存取。可以使用foreach语句逐个提取集合中的元素,并对集合中每个元素执行语句中的操作。foreach语句的语法格式为:foreach(数据类型变量in表达式)循环体说明:(1)数据类型是用来声明循环变量的;表达式对应于作为操作对象的一个集合。(2)循环变量是一个只读的局部变量,在循环体中不能改变它的值;循环变

48、量的数据类型一定要与表达式包含的集合中元素的数据类型相同。3.3跳转语句C#中,可以使用跳转语句实现无条件地改变程序的执行流程,C#跳转语句包括break语句、continue语句、goto语句、return语句和throw语句。3.3.1break语句和continue语句1.break语句break语句功能是退出直接封闭它的switch、while、do-while、for或foreach语句。语法格式为:break;2.continue语句continue语句功能是不再执行continue语句后面循环语句内剩余的语句,而是进入下一次循环,continue语句可以用在while、do-wh

49、ile、for或foreach语句的内部。语法格式为:continue;3.3.2goto语句goto语句用于在程序当前位置直接跳转到指定位置,指定位置应该设置标签。goto语句的语法格式为:goto;需要说明的是,goto语句这种无条件跳转语句会破坏程序的可读性;所以,在程序中应减少使用goto语句,避免程序逻辑出现混乱。3.3.3return语句return语句一般用于函数中,使用return语句后将不执行它后面的代码,而返回到调用函数的主程序中。使用时直接将其放在希望返回的位置即可。3.4异常处理异常是指在程序执行过程中出现不正常的情况。对程序的异常处理非常重要,一般情况下,一个比较完整

50、的程序要尽可能考虑并处理可能出现的各种异常,如数据库操作的异常、文件操作的异常、运算时的异常等。3.4.1trycatch语句trycatch语句可以在程序执行异常时,不但给用户提示异常信息,还会继续执行程序。try子句用来尝试可能未成功的操作,包含可能产生异常的代码;而catch子句可以处理存在的异常,处理或响应异常的代码。trycatch语句的格式为:try语句块catch(异常类型标示符1)异常处理1catch(异常类型标示符2)异常处理2.说明:一个try后可以跟一个或多个catch,可以在一段程序中处理多种异常情况。3.4.2trycatchfinally语句trycatchfina

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁