第2章c基础剖析

上传人:今*** 文档编号:107053683 上传时间:2019-10-17 格式:PPT 页数:24 大小:613.50KB
返回 下载 相关 举报
第2章c基础剖析_第1页
第1页 / 共24页
第2章c基础剖析_第2页
第2页 / 共24页
第2章c基础剖析_第3页
第3页 / 共24页
第2章c基础剖析_第4页
第4页 / 共24页
第2章c基础剖析_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第2章c基础剖析》由会员分享,可在线阅读,更多相关《第2章c基础剖析(24页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 C#语法基础,2,教学目标,了解C#的基本数据类型。 掌握运算符的使用特点。 熟练掌握流程控制语句的语法结构和执行过程。 掌握数组的定义和访问方法。,3,2.1 基本数据类型,1、变量与数据类型 使用变量来保存数据。 变量有不同的内涵,称为类型。建立类型系统的原因是,不同类型的数据需要用不同的方法来处理。 2、变量的声明 类型名 变量名; 3、基本数据类型 是组成应用程序中基本构件的类型。 C#中常用的基本类型如表2-1 P11,4,2.2 常量与变量,2.2.1 常量 在程序运行期间其值不会改变的量称为常量,它通常可以分为字面常量和符号常量。 1整型常量 2浮点常量 3字符常量

2、4字符串常量 字符串常量是用双引号括起来的零个或多个字符。C#支持两种形式的字符串常量, 一种是常规字符串,另一种是逐字指定的字符串。 5布尔常量 6符号常量 符号常量的定义格式为:const 类型名 标识符 = 初值;,5,2.2 常量与变量,2.2.2 变量 C#中的变量必须先声明后使用,声明变量就是给变量指定数据类型和名字。 1变量的命名 在C#中变量的命名规则如下: 变量名的第一个字符必须是字母、下划线或。 其后的字符可以是字母、下划线或数字。 注意: 关键字不能作为变量名使用,否则会产生编译错误; C#区分大小写。 2变量的赋值和初始化 变量在使用前必须初始化,C#中如果使用了未初始

3、化的变量,将会产生一个编译错误。,6,2.3 表达式,2.3.1 算术运算符 算术运算符一般应用于数值类型(整数和浮点数) 说明: “+、-、*、/”运算与一般数学意义和其它语言相同,但是需要注意的是,当“/”运算符的两个操作数都是整型数据时,C#将执行整数除法,即C#将自动丢弃商的小数部分,只返回商的整数部分。“%”运算也可以作用于浮点数。 “+”和“-”运算符只能作用于变量,不能应用于常量和表达式。“+”和“-”运算符的位置不同将对表达式的值产生不同的影响。 “+”也可以用于字符串类型的数据,它将实现两个字符串的连接。 2.3.2 赋值运算符 2.3.3 关系运算符 对于任何一种数值类型,

4、可以使用所有的关系运算符。对于字符串类型和布尔值,只能 使用=和!=运算符。,7,2.3 表达式,2.3.4 逻辑运算符 说明: &和 | 运算符的结果与&和 | 完全相同,但是得到结果的方式不同。&和|运算符先 检查第一个操作数,再根据该操作数的值进行运算,可能根本就不处理第二个操作数。即: 如果&运算符的第一个操作数是false,就不需要考虑第二个操作数的值了,因为无论第 二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true,| 运算符就 返回true,无需考虑第二个操作数的值。但是&和 | 运算符却不是这样,它们总是要计算两个操作数。 因为操作数的计算是有条件的,

5、如果使用&和 | 运算符来代替&和 | ,性能会有一定提 高。作为一个规则,尽可能使用&和 | 运算符。,8,2.3 表达式,2.3.5 条件运算符 条件运算符是唯一的一个三元运算符,它有3个操作数,其语法如下: ? : 条件运算符适合于简单的赋值语句,如果根据比较结果要执行大量的代码,应使用if语句。 2.3.6 按位运算符 2.3.7 运算符的优先级 当一个表达式中包含多种运算符时,表达式的计算顺序取决于运算符的优先级。而当运算符的优先级相同时,计算顺序取决于运算符的结合性。一般情况下,运算符是左结合性,即按照由左 至右顺序计算,例如 x + y - z。也有一些运算符是右结合性,例如赋值

6、运算符按照从右向 左顺序计算。,9,2.4 流程控制,程序流程就是C#代码的执行顺序。本节将介绍控制程序流程的两种方法,即分支和 循环。分支是有条件地执行代码,条件取决于计算的结果。而循环则是重复执行相同的语句。 2.4.1 分支 条件运算符,if语句和switch语句 1if语句 if 语句最简单的语法如下: if ( ) 也可以将else语句与if语句合并使用,指定其他代码。语法如下: if ( ) else ,10,2.4 流程控制,可以使用if语句判断多个条件,例如: if ( var = 1 ) / 要执行的代码 else if ( var = 2 ) / 要执行的代码 else i

7、f ( var = 3 | var = 4 ) / 要执行的代码 else / 要执行的代码 ,11,2.4 流程控制,2switch语句 switch 语句可以一次将测试变量与多个值进行比较。另外这种测试仅限于离散的值。switch 语句的基本结构如下: switch( ) case : break; case : break; case : break; default: break; ,12,2.4 流程控制,2.4.2 循环 在C#中,实现循环可以用do语句、while语句、for语句。 1do语句(do循环) do while ( ); 其中:的计算结果是一个布尔值。 2while语

8、句(while循环) while ( ) ,13,2.4 流程控制,3for语句(for循环) for 语句适合于执行指定次数的循环,要定义for语句,需要下列信息: 初始化计数器变量的一个起始值。 继续循环的条件,它应涉及到计数器变量。 在每次循环后,对计数器变量执行一个操作。 这些信息必须放在for语句的结构中,如下所示。 for ( ; ; ) ,14,2.4 流程控制,4. 循环的中断 break-立即终止整个循环。 continue-立即终止当前的循环(继续执行下一次循环)。 goto-可以跳出循环,到已标记好的位置上(如果希望代码易于阅读和理解,最好不要使用该语句)。 return

9、-跳出循环及其所在的函数。,15,break语句,break语句只能用于循环语句或switch语句中,如果在switch语句中执行到break语句,则立刻从switch语句中跳出,转到switch语句的下一条语句;如果在循环语句执行到break语句,则会导致循环立刻结束,跳转到循环语句的下一条语句。不管循环有多少层,break语句只能从包含它的最内层循环跳出一层。 int i = 1; while ( i = 10 ) if ( i = 6 ) break; Console.WriteLine( “0”, i+ ); ,16,continue语句,continue仅终止当前的循环,而不是整个循

10、环代码,例如: int i = 1; for ( i = 1; i = 10; i + ) if ( ( i % 2 ) = 0 ) continue; Console.WriteLine(i ); continue语句只能用于循环语句之中,它的作用是结束本轮循环,不再执行余下的循环体语句,通常它会和一个条件语句结合起来用,不会是独立的一条语句,也不会是循环体的最后一条语句,否则没有任何意义。 如果continue语句陷于多重循环结构之中,它只对包含它的那层循环有效。,17,2.5 string类型,在C#中使用string类来处理字符串,所有的字符串操作都使用string类的成员方法。 st

11、ring类型变量可以看作是char变量的只读数组。C#允许使用“+”运算符连接字符串,还允许使用类似于索引器的语法来提取指定的字符。,18,2.6 数组,2.6.1 声明数组 声明一维数组: ; 其中:可以是任何数据类型,数组中的所有元素都是这种类型。可以是任何合法的变量名。 提示: 在C#中数组是一个引用类型,声明数组时,只是预留一个存储位置以引用将来的数组实例,实际的数组对象是通过new运算符在运行时动态产生的。因此在数组声明时,不需要给出数组的元素个数。 在C#中,所有数组都是System.Array类的派生类,所以任何数组都可以使用 System.Array类的属性及方法。例如,使用S

12、ystem.Array的Length属性,可以获取数组 的长度;使用GetLength(n)方法,可以得到第n维的数组长度(n从0开始)。程序中利用 这些属性和方法,可以有效地防止数组下标的越界。,19,2.6 数组,2.6.2 数组初始化(创建数组对象) 以字面形式 指定数组的完整内容; int intArray = 1, 3, 5, 7, 9 ; / 有五个元素,每个元素被赋予了一个整数值。 指定数组的大小,再使用关键字new初始化所有数组元素。 int intArray = new int 5; / 用常量值5指定数组的大小。,20,2.6 数组,2.6.3 数组的访问 一维数组元素的引

13、用语法:数组名下标 其中下标是数组元素的索引值,注意下标的值从0开始,可以使用数组的Length成员来确定元素的个数。 2.6.4 foreach语句 foreach语句会迭代每个元素,并针对每个元素执行一次循环体语句,且不存在元素下标越界的危险。 foreach ( in ) 提示: 迭代变量x的类型必须与数组元素类型相一致,并且x是一个只读型局部变量。如果试图改变它的值将产生一个编译错误。 foreach语句只能应用于集合类型,而且只能读取元素的值,不能修改元素的值。,21,2.6 数组,2.6.5 多维数组 多维数组就是使用多个下标访问其元素的数组。 , , , ; 使用以下语句创建多维

14、数组对象。 score = new int 3, 4 ; / score是一个3行4列的二维数组 table = new float 2, 3, 4 / table是一个三维数组,每维分别是2、3、4 要访问多维数组中的每个元素,只需指定多个下标,并用逗号分隔开,然后就可以 像其他变量一样处理了。例如score1,2将访问score数组的第2行的第3个元素。,22,2.6 数组,2.6.6 数组的数组 一维数组和多维数组都属于矩形数组,因为每一行的元素个数都相同。也可以使用锯齿数组,其中每行的元素个数可以不同,即锯齿数组是数组的数组,它的每个元素都是一个数组,而每个数组的长度可以不同,就像一个

15、锯齿形状。锯齿数组的声明如下。 ; 方括号 的个数与数组的维数相关。,23,2.7 综合应用实例,【案例2.1】扑克牌洗牌和发牌。 扑克牌游戏有很多种,玩法各有不同,但是每 种游戏都要进行洗牌和发牌,本实例将模拟计算机洗牌和发牌的过程。本程序首先要求用户输入洗牌次数,然后用计算机模拟洗牌过程,接着把牌分发给四个玩家,最后将四个玩家的牌显示出来。 本实例用到的知识点:变量、运算符和表达式、循环(for语句)、分支(switch语句)、随机数生成。,24,【基本思路】,一维数组Card存放52张牌(不考虑大、小王),二维数组Player存放四个玩家的牌。 用三位整数表示一张扑克牌,最高位表示牌的种类,后两位表示牌号。例如: 101,102,113分别表示红桃A,红桃2,红桃K; 201,202,213分别表示方块A,方块2,方块K; 301,302,313分别表示梅花A,梅花2,梅花K; 401,402,413分别表示黑桃A,黑桃2,黑桃K;,

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号