C#编程基础.pdf

上传人:韩长文 文档编号:3329694 上传时间:2019-08-13 格式:PDF 页数:193 大小:1.82MB
返回 下载 相关 举报
C#编程基础.pdf_第1页
第1页 / 共193页
C#编程基础.pdf_第2页
第2页 / 共193页
C#编程基础.pdf_第3页
第3页 / 共193页
C#编程基础.pdf_第4页
第4页 / 共193页
C#编程基础.pdf_第5页
第5页 / 共193页
点击查看更多>>
资源描述

《C#编程基础.pdf》由会员分享,可在线阅读,更多相关《C#编程基础.pdf(193页珍藏版)》请在三一文库上搜索。

1、C#编程基础 第一 第二 第三 第四 第五 第六 课程目标 C#语言基础 量 运算符与表达式 数据类型 数组 函数 了解 理解 掌握 重点难点 了解C#的基本语法 理解函数的定义与重载 掌握类型的转换 计算机存储单位 1 Byte = 8 Bit 1 KB = 1,024 Bytes 1 MB = 1,024 KB 1 GB = 1,024 MB 1 TB = 1,024 GB 1 PB = 1,024 TB 1 EB = 1,024 PB 1 ZB = 1,024 EB 1 YB = 1,024 ZB Bit:比特(最小的存储单位) Byte:字节(256个状态) KB:千字节 MB:兆字节

2、 GB:吉字节 计算机存储单位一般用Bit,Byte,KB, MB,GB,TB,PB,EB,ZB,YB,BB来表示。 十进制, 二进制, 十六进制 计算机语言 第一代语言:机器语言 第二代语言:汇编语言 第三代语言:高级语言 第四代语言:智能语言 Unity3d支持的语言 JavaScript C# Boo MonoDevelop开发环境介绍 解决方案窗口:解决方案窗口: 1 1,解决方案,解决方案 2 2,工程,工程 3 3,文件,文件 代码编辑窗口代码编辑窗口 第一个C#程序:hello world 创建第一个控制台程序并且调试运 行。 关于控制台的两条指令: Console.WriteL

3、ine:往控制台打印输出 Console.ReadLine:从控制台读入一行 public static void Main (string args) Console.WriteLine (“hello world“); C#语法 C#源文件一般以cs结尾 C#程序的入口是Main函数 从上到下一条条的依次执行(程序的流 程)。 大小写敏感 两句代码之间用分号(;)分割(易错: 全角分号) 注释:单行注释、多行注释。 注释 注释只是给人看的,对编译和运行不起 作用。主要有以下两种: 单行注释: / 多行注释:/* */ (不能嵌套使用) 注释作用: 代码功能说明 调试 保持代码整洁 一行尽量

4、只写一个逻辑语句。 保持代码的层次感,多用缩进( 使 用tab键进行缩进,而不是使用空格 键) 多加注释 大括号尽量单独一行 多使用快捷键 ctr+c:复制 ctr+v:粘帖 ctr+a:全选 ctr+z:撤销 ctr+s:保存 ctr+F5:运行 计算机用途? 内存 程序如果想运行也是要从硬盘中加载到 内存中才能运运行 程序运行中数据是存储在内存中的 数据在计算机中都是以二进制形式存在 的 如果要将数据保留下来,则要将数据保 存到硬盘上(持久化)比如:文件,数 据库等 申请一定大小的存储空间 代码:数据类型 名字;如:int i 数据类型:描述数据的类型及用于存放这个数据的内存空 间大小 名

5、字:给这个内存空间起个名字,用于后期的对数据的操 作 定义的内存空间中不能存放与数据类型不兼容的数据。 申请内存空间可分两种类型 定义变量(如:int i = 10) 定义常量(如:const int i = 33) 变量 声明变量三种方法: 数据类型 变量名; 数据类型 变量名 = 值; 数据类型 变量名1 , 变量名2; C#编译器执行严格的类型检查,使 用了未声明或未赋值的变量都将出 现编译错误。 常量 声明常量方法: const 数据类型 常量名 = 值; const 数据类型 常量名1 = 值1 , 常量名2 = 值2; 常量必须在定义时赋值 标识符 用来标识变量名、常量名、方法名、

6、数组名、类名、等有效字 符序列称为标识符 命名规则 由字母、数字和下划线组成 首字符只能是字母或下划线 不能使用关键字 标识符尽量取有意义的名字,尽量做到“见名知意” 除了以上要求外,C#还建议: 变量名的开头用小写 常量名的全部大写 练习 下列哪个是正确的标识符? _a a a1 a_a 1_a 1a a3_ a$b int int1 a b A1 INT a-2c 关键字 关键字是C#程序语言保留作为专用的字, 不能作为通常的标识符来使用。 Abstract、as、base、bool、break、byte、case、catch、char、 checked、class、const、conti

7、nue、decimal、default、 delegate、do、double、enum、event、explicit、extern、false、 finally、fixed、float、for、foreach、get、goto、if、implicit、 in、int、interface、internal、is、lock、long、namespace、 new、null、object、operator、out、override、params、 private、protected、public、readonly、ref、return、sbyte、 sealed、set、short、sizeof、

8、stackalloc、static、string、 struct、switch、this、throw、true、try、typeof、uint、 ulong、unchecked、unsafe、using、value、virtual、volatile、 while。 数据类型分类 数据类型 引用类型 基本数据类型 值类型 枚举 结构体 类 接口 数组 整型 浮点型 布尔型 字符型 委托 基本数据类型 基本数据类型数据类型有: 整型(整数) 浮点型(实数) 布尔型(2个值:true、false) 字符型(单引号一个字符) 整型 整型(数学中的整数) 八种整型:sbyte、byte、short、us

9、hort、 int、uint、long、ulong。 注:一些变量名称前面的“u”是unsigned 的缩写,表示不能在这些类型的变量中 存储符号。 类型有无符号占据位数允许值的范围 sbyte是1 -128 到 127 short是2 -32768 到32767 int是4 -2147483648 到 2147483647 long是8 -9223372036854775808 到 9223372036854775807 byte否1 0 到 255 ushort否2 0 到 65535 uint否4 0 到 4294967295 ulong否8 0 到1844674407370955161

10、5 整型 练习 第一步:定义一个整型变量int,变 量名为i,初始化值为123, 第二步:将其值修改为456 第三步:打印变量i的值 编写代码完成下面要求: 练习 int i=10; int j=i; i=5; j=? 执行完下面代码后,j的值为多少 练习 编写代码交换两个变量的值 int i1 = 10;int i2 = 20; /在这里添加你们代码 Console.WriteLine(i1);/要求这里 输出20Console.WriteLine(i2);/要求 这里输出10 浮点型(数学中的实数) 浮点型:float,double,decimal 如果我们在代码中写一个12.3,编译 器

11、会自动认为这个数是个double型。 所以如果我们想指定12.3为float类型, 那么你必须在数字后面加上F/f: 浮点型 浮点型 布尔类型是用来表示“真”和“假”这两个概 念的。该类型变量只有两种取值:“真”和 “假”。在C#中,分别采用true和false两个 值来表示。 布尔类型:bool bool占1个字节 bool的取值:true(真)、false(假) 在C和C+语言中,用0来表示“假”值,其 他任何非0的式子都可以表示“真”这样一 个逻辑值。(这个在C#中不适用) 布尔型 字符编码 编码 常用字符编码 ASCII 一个字节一共可以用来表示256种不同 的状态,每一个状态对应一个

12、符号,就 是256个符号,从00000000到 11111111。(如:我们是用01000001 表示字符A) 上个世纪60年代,美国制定了一套字符 编码,对英语字符与二进制位之间的关 系,做了统一规定。这被称为ASCII 码,一直沿用至今。 0-127为标准的ASCII码 128-255为扩展的ASCII 码 常用字符编码 非ASCII编码 英语用ASCII编码就够了,但是用来表示 其他语言,ASCII是不够的。 常见:GBK,GB2312,Big5,iso8859- 1 其他所有编码都兼容于ASCII编码 乱码的出现 :世界上存在着多种编码方 式,同一个二进制数字可以被解释成不 同的符号。

13、 常用字符编码 Unicode(万国码) 如果有一种编码,将世界上所有的符号都纳入 其中。每一个符号都给予一个独一无二的编 码,那么乱码问题就会消失。这就是Unicode, 就像它的名字都表示的,这是一种所有符号的 编码。 Unicode当然是一个很大的集合,现在的规模可 以容纳100多万个符号。每个符号用三个或四个 字节表示 Unicode存在的问题 常用字符编码 UTF-8 UTF-8是Unicode的实现方式之一 UTF-8是一种变长的编码方式。它可以使用 14个字节表示一个符号 Unicode其他实现:UTF-16(字符用两个字 节或四个字节表示)和UTF-32(字符用四个 字节表示)

14、 字符型:char 字符:使用两个单引号括起来的字 符 例如:char c = b; 字符在内存中是以数字形式存在, 所有整型和字符型是等价的 如: int i = 65; 也可以使用: int i = A char c = A; 也可 以使用: char c = (char)65 字符型 练习 下面字符常量表示正确吗? a A 1 abc “a“ 练习 int i = 1;Console.WriteLine(i); 数据类型转换 隐式类型转换(系统完成,无风险) 显式类型转换(程序员完成,有风 险) 隐式类型转换 隐式转换是编译系统自动进行的,不需要加 以声明。在该过程中,编译器无需对转换进

15、 行详细检查就能够安全的执行转换。隐式转 换一般不会失败、不会出现致命隐患及造成 信息丢失。 何时发生隐私类型转换:将精度低的类型转 换为精度高的类型 short s = 1; int i = s; 0000000000000001 0000000000000000000000000 0000001 不同数据类型进行混合运算时,会自动发生隐式转换 整型(包括 int,short,long)和浮点 型(包括float,double)可 以混合运算。 在进行运算时,不同类 型的数据要先转换成同 一类型,然后进行运 算,转换的规则按右图 所示 练习 Console.WriteLine(2.3+123

16、+A); 练习 Console.WriteLine(3/2); 显式类型转换 又称为强制类型转换。与隐式类型转换 相对,该方式需要用户明确的指定转换 的目标类型 显式转换包含所有的隐式类型转换,即 把任何编译器允许的隐式类型转换写成 显式转换都是合法的。显式类型转换并 不一定总是成功,且转换过程中会出现 数据丢失。 何时显式类型转换:将精度高的类型转 换为精度低的类型 00000000000000000000000000000001 00000000000000000000000000000001 int i = 1;short s = (short)i; 练习 char c = B;/这里赋

17、值可以是任意大写字母 /在这里添加你们代码 Console.WriteLine(c); /要求这里输出变量c所存储字母的小写格式 练习 从键盘输入3个整数,求出它们的平 均值 字符串用来存储一系列的字符 字符串是引用数据类型 字符串类型:string 字符串:使用两个双引号括起来的字 符 例如:string str = “hello world”; 使用加号(+)可以连接字符串 “q” 和 q 的区别 字符串 练习 下面字符串常量表示正确吗? “a” abc “123” “123.4f” “” 思考 字符串“12345”,进行数据类型转换 成整型,整型值是多少? string s=”12345

18、”; /经过转换后 int i = ? Convert 只有在内存存储上存在交集的类型之间 才能进行隐式类型转换或显式类型转 换, 如果转换前后两数据的类型在内存存在 上不存在交集,比如不可以int i;string s=(string)i;这种情况必须用Convert类 提供的方法。 Convert类:专门从事数据类型转换 数值字符串与数值之间的转换 数值-字符串 使用“+”连接一个空字符串 字符串-数值 使用Convert.ToXXX(数值字符串); 使用int.Parse(数值字符串); string s = “12345“;int i = Convert.ToInt32(s); int

19、 i = int.Parse(s); int i = 12120; string s2 = i+“”; 其他数据类型和布尔类型之间不存在任何强制类 型转换或隐式类型转换,但是可以使用Convert进行转 换,但是这种转换是没有意义的 控制台输入与输出 输入:Console.ReadLine()来接收终端输入 数据,返回类型为字符串。 输出:Console.WriteLine()输出时可以使用 占位符来进行格式化输出。当要输出多个变 量时可以是用占位符 如: Console.WriteLine(“0,1,2“,1,2.3f,true); 占位符必须有值赋给它,否则会报错, 占位符索引从0开始 格

20、式化输出 使用占位符: 占位符号:数字 占位符可以输出任意类型 占位符索引一般从0开始,可以有多个 占位符必须有值赋给它,否则会报错 Console.WriteLine(“age is 0“,23); 使用“+”连接(推荐): Console.WriteLine(“age is ”+23); 练习 在控制台输入一个整数,输出这个 数的平方 练习 编写代码输出: 你好“张三” 转义字符 转义符字符名 单引号 “双引号 反斜杠 0空字符 a感叹号(Alert) b退格 f换页 n换行 r回车 t水平Tab v垂直Tab 表示字符串中的不当成转义符 不是万能的,不能解决字符串中 有双引号的问题,如果

21、有双引号还 是用转义符 运算符 表达式 运算符用于执行程序代码运算,会针对 一个以上操作数项目来进行运算。例如: 2+3,其操作数是2和3,而运算符则是 “+”。 表达式:操作符、操作数按照一定的规 则连接而成的式子。 运算符 按照操作符的作用来划分: 数学操作符(+ - * / % + -) 赋值运算符(= += -= *= /= %=) 关系操作符(= != =) 逻辑操作符(int j = i+; printf(“%d“,i);pri ntf(“%d“,j); int i = 10;int j = +i; printf(“%d“,i);pri ntf(“%d“,j); int i = 1

22、0;printf(“%d“, i+); printf(“%d“, i); int i = 10;printf(“%d“, +i); printf(“%d“, i); 练习 输入一个三位数整数,输出它的个位数, 十位数和百位数。 i+与i+1的区别: i+,改变了i的值,等于i=i+1; i+1,没有改变i的值。 赋值运算符 赋值就是将右边表达式的计算结果赋给左 边变量 赋值运算符的优先级是比较低,这就能解释 令人不解的i=i+1; 其中,赋值的左操作数必须是一个变量,不可 以是个表达式 如果赋值操作符两边的操作数类型不一 致,那就先要进行类型转换。 变量 = 表达式 复合赋值运算符 在赋值符“

23、”之前加上其他运算符, 可以构成复合的运算符。 凡是二元运算符,都可以与赋值符 一起组合成复合赋值符。 例如: 等价于 * 等价于 *() 等价于 c#语言规定可以使用种复合赋值运算符:, ,*,| 记忆法: 第一步: 第二步: 第三步: 关系运算符 关系运算实际上是逻辑运算的一种 关系表达式的返回值总是布尔值,即true 或false 大于 =大于或等于 =等于 !=不等于 不要和不要和= =混淆混淆 练习 求打印结果是什么? Console.WriteLine(10=10); Console.WriteLine(1020); Console.WriteLine(10 右移 所有信息在计算机

24、中都是以二进制的形式保存的,位运算就是对 数据按二进制位进行运算。注意:位操作支持的数据类型是基本数据类 型,如byte、short、char、int、long等。 01101101 int i2 = 30; Console.WriteLine(“0“,i110int a = 20, b = 12;if(a = b) max = a;else max = b; int a = 20, b = 12;int max = a=b?a:b; 使用场合:若在if语句中,当被判别的表达式的 值为“真”或“假” 时,都执行一个赋值语句且向同一 个变量赋值时,可以用一个条件运算符来处理。 switch语句

25、switch(条件) case 1: /. break; case 2: /. break; default: /. break; casecase中的值必须是中的值必须是常量常量或或常量表常量表 达式达式,不能是变量。,不能是变量。 switch说明 当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后 面的语句 每一个case的常量表达式的值必须互不相同; 不要忘了break。否则编译不过,在其他语言中break是可以省略的 可以任意排列case项的顺序,不会影响效率 如果没有符合的case就执行default语句块,default并不是必须的,最多只能 有一个def

26、ault 类似于if.else if.else if.else。但是switch只判断一次,else if 要判断多 次,所以switch的效率更高 switch一般都可以用if重写,但是if不一定能用switch重写 练习 输入一个字符,如果输入的是w, 则输出“向前”,输入的是a,则输出 “向左”,如果输入的“s”,则输出向 后,如果输入的是d,则输出“向 右”,其他情况则输出“你输入有误” 循环语句 while语句 do.while语句 for语句 while语句和do.while语句 while(条件) / 循环体 do /循环 体while(条 件); 这个语句首先要判断条件是否 为

27、真,要是“真”则执行大括号里面 的语句模块,要是“假” 则越过大括 号里面的语句执行下面的语句 这个语句先要执行do后面的语 句再进行判断条件要是为真,如果 为“真”就再次执行do后面的语 句,要是为“假”则执行while后面 的语句 两者的区别:do.while语句不管是不是符合条件最少执行一次 while(条件) / 循环体 do /循环 体while(条 件); 练习 在控制台打印50个星(*) 在控制台打印0-100 在控制台打印0-100内所有偶数 计算1到100之间整数的和; 计算1到10之间整数的积; 循环中断 break:立即终止整个循环,跳出循 环体,接着执行循环体下面的语句

28、。 continue:立即终止当前循环步骤, 即跳过循环体中下面尚未执行的语 句,进行下一次循环步骤。(只结 束本次循环,而不是终止整个循环 的执行) 练习 计算1到100之间的除了能被7整除之外所有整数的和。 要求用户输入用户名和密码,只要不是”admin”、”password” 就一直提示要求重新输入。直到输入成功后跳出循环并提示 用户“登陆成功” 不断要求用户输入一个数字,然后打印这个数字的二倍,当 用户输入q的时候程序退出。 不断要求用户输入一个数字,当用户输入end的时候显示刚 才输入的数字中的最大值。 for语句 for语句使用最为灵活,不仅可以用于循环次数已经 确定的情况,而且可

29、以用于循环次数不确定而只给出循环 结束条件的情况,它完全可以代替while语句。 for( 表达式1 ; 表达式2 ; 表达式 3) /语句 表达式1;while(表 达式2)语 句;表达式3; 可以可以whilewhile来理解来理解forfor,但是两者还是有不,但是两者还是有不 同,比如同,比如forfor的表达式的表达式1 1定义的变量作用域定义的变量作用域 在在forfor的内部,的内部,forfor的表达式的表达式3 3必须执行必须执行 for语句 for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给 循环变量赋初值。 如果表达式2省略,即不判断循环条件,循环无终

30、止地进行下去。 表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常 结束。 可以省略表达式1和表达式3,只有表达式2,即只给循环条件。此时 等价于while语句 3个表达式都可省略。 但是不能丢了“;”。 表达式1和表达式3中可以包含多个语句,请用逗号分隔 break、continue同样可以应用于for。 练习 在控制台打印出0-100之间所有奇数 在控制台打印50-1 计算1到100之间所有整数的和。 把100200之间的不能被3整除的数输出 编程输出1到100中能被3整除但不能被5整除的数,并在最后 输出统计个数 一个控制台应用程序,输出15的平方值 求出11000之间的所有能

31、被7整除的数,并计算和输出每5个 的和。 一球从100米高度自由落下,每次落地后反跳回原高度的一 半;再落下,求它在 第10次落地时,共经过多少米?第10 次反弹多高? 练习 从键盘输入10个整数,求出不大于90所有数的和 水仙花数是指一个三位数,其各位数字立方和等于该 数本身。如:153=1*1*1+5*5*5+3*3*3。输出1000以 内所有的水仙花数。 猴子吃桃问题。猴子第一天摘了若干桃子,立刻吃掉 了一半,还多吃了一个;第二天吃了剩下的一半,又 多吃一个。以后每天吃掉前一天剩下的一半多一个。 到第十天想吃时只剩一个桃子了。求第一天共摘了多 少桃子。 何时使用? while循环常用于循

32、环次数不固定, 根据是否满足某个条件来跳出循环 循环次数固定了,就可以使用for 边界值 无论使用if语句、while语句、do.while语 句,for语句都要小心循环的边界值,它是绝大 部分错误的根源。 嵌套循环 一个循环体内又包含另一个完整的 循环结构称为循环的嵌套。内嵌的 循环中还可以嵌套循环,这就是多 层循环。 三种循环(while循环、do.while循环 和for循环)可以互相嵌套。 嵌套循环中,break只能跳出最靠近 它的那一层循环 练习 在控制台上输出如下10*10的星型方阵 练习 在控制台上输出如下10*10的三角形方 阵 练习 在控制台上输出九九乘法表 练习 在控制台上

33、输出如下10*10的三角形方 阵 练习 在控制台上输出如下10*10的三角形方 阵 练习 在控制台上输出如下10*10的空心星型 方阵 练习 用户在控制台输入一个奇数(如果 输入为9),在控制台输出如下图案: 练习 编程在屏幕上输出正三角形(从控制台接 收一个整数,如果输入为7,则输出如下样式) 练习 有1、2、3、4个数字,能组成多少 个互不相同且无重复数字的三位 数?都是多少? 练习 编程输出1000以内的所有素数。 (素数,又称质数,是只能被1或者 自己整除的自然数。 最小的素数是2) 求10!(1*2*3*10) 求1!+2!+3! 求2+22+222+2222+22222 一个数如果

34、恰好等于它的因子之 和,这个数就称为“完数”。例如 6=123,编程找出1000以内 的所有完数。 练习 若公鸡每只3元,母鸡每只5元,小 鸡三只1元,编写程序计算用100元 钱买100只鸡,计算出所有可能性, 分别打印公鸡、母鸡、鸡应各买多 少只。 思考 游戏人物有4种状态(行走状态,奔 跑状态,暂停状态,站立状态), 在程序设计中分别以整型1-4来表 示,编写代码在控制台输入一个整 数,在控制台输出状态 枚举 枚举可以创建出一种数据类型,并指定这个数据类型的取值 范围。 使用enum来定义枚举。 定义: enum 枚举名 值1=整型常数, 值2= 整型常数, . 值N=整型 常数 使用:

35、枚举名 变量名 = 枚举名. 值1; 定义: enum Gender Male, Female 使用: Gender g = Gender.Male; 注意:值为标识符,不是字符串,不需要加双引号 枚举 限制用户不能随意赋值,只能在定 义枚举时列举的值中选择 不需要死计每一个值是什么,只需 要选择相应的值 枚举实际上是为一组在逻辑上密不 可分的整数值提供便于记忆的符号, 增加程序的可读性。 枚举类型的变量其实都可以强行转 换成一个整型 枚举的值在定义时是有一个默认编 号的,编号从0开始(尽量不要去指 enum DirectionUp, Down, Left,Right public stati

36、c void Main (string args)Direction direction = Direction.Up;switch(direction) case Direction.Up: Console.WriteLine (“up“);break; case Direction.Down:Console.WriteLine (“down“); break; case Direction.Left: Console.WriteLine (“left“);break; case Direction.Right:Console.WriteLine (“right“); break; 数组 在

37、程序设计中,为了处理方便,把具有相同 类型的若干变量按有序的形式组织起来。这些按 序排列的同类数据元素的集合称为数组。 定义数组 数组类型 数组名=new 数组类型数组元素初始化列表; 数组类型 数组名=数组元素初始化列表; 数组类型 数组名=new 数组类型元素个数; 三种方式: string languages=new string “C“, “C+“, “C#“ ; string languages= “C“, “C+“, “C#“ ; C#中也允许在定义数组时对数组元素 进行初始化,比如如下定义: 如果采用了这种进行初始化的定义后,就 不用再指出数组的大小。系统会自动把大括号 里元素的

38、个数作为数组的长度。 如果你一定要指定数组长度,那一定要和 大括号里的元素个数相同 int nums = new int35,3,8/个数和声明数必须一致 int nums = new int55,3,8/错误 int score = 1,2,3,4,5,6;/正确 int score ;score = 1,2,3,4,5,6;/分开错误 说明 数组的类型实际上是指数组元素的取值类型。 对于同一个数组,其所有元素的数据类型都 是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 通过数组的索引(下标),访问指定的数组元 素,下标(索引)从0开始。如 int i=

39、new int5;因此5个元素分别为 a0,a1,a2,a3,a4。 数组的长度使用Length来获取,如数组 名.Length 说明 数组的类型实际上是指数组元素的取值类型。对于同一个数组, 其所有元素的数据类型都是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 通过数组的索引(下标),访问指定的数组元素,下标(索引)从0开 始。如 int i= new int5;因此5个元素分别为 a0,a1,a2,a3,a4。 数组的长度使用Length来获取,如数组名.Length 说明 数组的类型实际上是指数组元素的取值类型。 对于同一个数组,其所有元素的数据类型都

40、 是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 通过数组的索引(下标),访问指定的数组元 素,下标(索引)从0开始。如 int i= new int5;因此5个元素分别为 a0,a1,a2,a3,a4。 数组的长度使用Length来获取,如数组 名.Length 在C#中,可以使用变量来指定数组长度。 但这不意味着数组长度可变 int arrayLength= 5;int myArray = new intarrayLength; 注意:一旦数组的长度确定了,就不能再改变数组的长度 遍历数组 /使用foreach遍历数组 string names= “to

41、m“,“jerry“,“lily“;foreach(string name in names)Console.WriteLine(“my name is 0“,name); /使用for遍历数组 string names= “tom“,“jerry“,“lily“;for(int i=0;inames.Length;i+) Console.WriteLine(“my name is 0“,namesi); forfor和和foreachforeach的区别:的区别: forfor可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍历。可以不逐个遍历,比如每隔一个遍历一个,或者可以从后向前遍

42、历。 foreachforeach对数组只是只读访问,不能修改数组元素的值,对数组只是只读访问,不能修改数组元素的值,forfor可以。可以。 练习 定义一个含100个元素的整型数组,分别赋值为3- 102,并在控制台输出 从键盘输入10个整数,求出它们的最小值,并求最 小值所在位置的索引 从控制台接收5个评委评分,评分规则为:去掉一个 最高分,再去掉一个最低分,最后算出平均得分。 从键盘输入10个整数,求出它们的平均值及比平均 值大的数 练习 计算一个整数数组11,32,45的所有元素的和。 将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑 大世” 将一个整数数组的每一个元素进行如下

43、的处理:如果元素 是正数则将这个位置的元素的值加1,如果元素是负数则 将这个位置的元素的值减1。 将一个字符串数组的元素的顺序进行反转。 “3“,“a“,“8“,“haha“ 转换为“haha“,“8“,“a“,“3“。 有个数组1,4,3,2,5,编写代码对其进行排序,得 1,2,3,4,5(冒泡排序) 多维数组 数组可以具有多个维度,称为多维数组, 二维数组是最简单的多维数组 定义:数据类型 数组名常量表达式,常量 表达式 数组元素的访问方式:数组名下标,下标 二维数组的定义和初始化 /定义时初始化 int, numbers = new int,1,2,3,4,5,6; /定义和初始化分开

44、 int, numbers = new int2,3; numbers0,0 = 1; . numbers1,2 = 6; 练习 int, data = 0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0, 0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1; 练习 3 3 6 6 2 2 5 5 1 1 4 4 将一个二维数组行和列元素互换,存到 另一个二维数组中。 4 4 5 5 6 6 1 1 2 2 3 3 练习 自定义一个34的矩阵,使用控制台 赋值,要求编程序求出其中值最大的那 个元素的

45、值,以及其所在的行号和列号。 练习 在一个33的整数矩阵中输入数 据,计算并显示对角线元素之和。 练习 打印杨辉三角 交错数组 交错数组是元素为数组的数组。交错数组 元素的维度和大小可以不同。交错数组有 时称为“数组的数组”. 多维数组和交错数组的区别 多维数组的每一行元素的个数是一 样的,数组的长度为数组的所有元 素个数 交错数组的每一行可以是不同的, 数组的长度为第一维数组的元素个 数 函数 许多程序设计语言中,可以将一段经常需要使用的代 码封装起来,在需要使用时可以直接调用,所以,函数也 可以说是许多代码的集合,这就是程序中的函数。 程序设计人员要善于利用函数,以减少重复编写程序 段的工

46、作量。 一个程序可由一个主函数和若干个其他函数构成。由 主函数调用其他函数,其他函数也可以相互调用。同一个 函数可以被一个或多个函数调用任意多次。 函数的定义 static 返回值类型 函数名(参数列表) /语句块 函数定义第一行告诉我们3件事情: (1)函数的返回值类型(函数类型) (2)函数的名称 (3)函数使用的参数数目和类型 说明 函数拥有自己的名称,可以使用合法标识符来命名。但 其名称不能与其他函数名重复。在C#一般要求函数名首 字母大写 程序的执行是从Main函数开始的,如是在Main函数中调 用其他函数,在调用后流程返回到Main函数,在Main函 数中结束整个程序的运行。 所有

47、函数都是平行的,即函数是相互独立的。一个函数 并不从属于另一个函数,即函数不能嵌套定义。函数间 可以相互调用,但不能调用Main函数。Main函数是系统 调用的。 一个简单的调用函数的例子 public static void Main (string args) PrintStart();/函数调用 Console.WriteLine(“hello world“); PrintStart(); /函数定义static void PrintStart() Console.WriteLine(“*“); Console.WriteLine(“*“); Console.WriteLine(“*“)

48、; Console.WriteLine(“*“); 参数 返回值 参数(可以零个或多个):传给函数处 理的数据 返回值(最多一个):函数处理完数据 后返回的数据 Console.ReadLine()就是一个有返回 结果的函数; Console.WriteLine(“hello“)就是一个 有参数的函数,只有告诉WriteLine 被打印的数据它才知道如何打印; int i= Convert.ToInt32(“22“)则是一 个既有参数又有返回值的函数。 函数参数 在定义函数时函数名后面括弧中的变量名称为“形式参数” (简称“形参”) 在主调函数中调用一个函数时,函数名后面括弧中的参数 (可以是一个表达式)称为“实际参数”(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1