c常量-枚举-结构-数组-方法与函数剖析

上传人:今*** 文档编号:107473195 上传时间:2019-10-19 格式:PPT 页数:38 大小:281KB
返回 下载 相关 举报
c常量-枚举-结构-数组-方法与函数剖析_第1页
第1页 / 共38页
c常量-枚举-结构-数组-方法与函数剖析_第2页
第2页 / 共38页
c常量-枚举-结构-数组-方法与函数剖析_第3页
第3页 / 共38页
c常量-枚举-结构-数组-方法与函数剖析_第4页
第4页 / 共38页
c常量-枚举-结构-数组-方法与函数剖析_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《c常量-枚举-结构-数组-方法与函数剖析》由会员分享,可在线阅读,更多相关《c常量-枚举-结构-数组-方法与函数剖析(38页珍藏版)》请在金锄头文库上搜索。

1、第4章 常量 枚举 结构数组方法函数(函数的参数),4.1 常量 4.2 枚举(字符串与枚举的转换) 4.3 结构 4.4 数组(冒泡排序) 4.5 方法(函数及参数) 4.6 方法的重载 4.7 ref 与 out 参数,1.常量,取值不可改变的变量,只在初始化时可赋值,用const修饰。,const 类型 常量名 = 常量值,static void Main(string args) const double PI = 3.14; PI = 3.20; ,2.枚举,定义了一种类型,并指定这种类型所可能的值。 语法:enum 自己的枚举类型值1,值2, 一般和类定义在同一级别。 每个值都有一

2、个默认编号,从0开始。 枚举的用法: QQStatus status = QQStatus.online; 和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。 enum Gendermale,female enum QQStatusonline,offline,hidden,namespace myfirst enum GENDER 男, 女 class Program static void Main(string args) GENDER sex; sex = GENDER.男; Console.WriteLine(sex); Console.WriteLine(

3、int)sex); Console.ReadKey(); ,举例:,MessageBox.Show(“aaaaa“, “bbbb“, MessageBoxButtons.RetryCancel); F12转定义进行枚举查看 / 消息框包含“确定”按钮。 OK = 0, / 消息框包含“确定”和“取消”按钮。 OKCancel = 1, / 消息框包含“中止”、“重试”和“忽略”按钮。 AbortRetryIgnore = 2, / 消息框包含“是”、“否”和“取消”按钮。 YesNoCancel = 3,字符串与枚举的转换,public enum Gender male, famale / C

4、onsole.WriteLine(“你的性别:0.“,Gender.male.ToString();,/字符串转换为枚举 (Gender)(Enum.Parse( typeof(Gender),“male”);,枚举一般和类定义在同一个级别(值不需加双引号,不可以是int类型,但可以强制转换为int) 每一个值都对应一个数字(编号从0开始) 典型的枚举类型:MessageBox.Show的参数(后面会学到),namespace myfirst enum GENDER 男 = 3, 女 = 6 class Program static void Main(string args) GENDER

5、sex; string s = Console.ReadLine(); try sex = (GENDER)(Enum.Parse(typeof(GENDER), s); Console.WriteLine(“键盘输入为:0“, sex); catch Console.WriteLine(“输入错误!“); Console.ReadKey(); ,3.结构体,为什么要使用结构? 存储一个人的信息,可声明一组变量,若要存储多个人呢? 例如c#中Color Point都是结构,访问修饰符 struct 结构名 定义结构成员 ,public struct Person public string N

6、ame; public int Age; public string Hobby; public int Popularity; public void SayHi() / . ,练习:,定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄 声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁,namespace myfirst enum GENDER 男 = 3, 女 = 6 public struct Person public string Name; public GENDER sex; public int Age; class Program

7、static void Main(string args) Person p1, p2, p3; p1.Age = 10; p2.Name = “小李“; p3.sex = GENDER.男; ,4.数组,统计每个学生的成绩,并计算全班的平均成绩,然后显示所有成绩。 如何声明变量? 好的解决方法,使用数组。,数组,保存多个值。几乎任意类型都可以声明数组。,int nums = 5,3,8;,int nums = new int3;,int nums = new int35,3,8 /个数和声明数必须一致 int nums = new int55,3,8 /错误 int nums = new i

8、nt5,3,8 /正确,可以省略数组个字 使用索引器访问指定编号位置的元素,访问数组元素:nums0、nums1。索引从0开始。,数组的声明 数组的赋值与取值 常见问题:求平均值,求最大值,求和,排序(冒泡排序),namespace myfirst public struct Person public string Name; public int Age; class Program static void Main(string args) Person P_all=new Person20; P_all12.Age = 18; Console.WriteLine(P_all.Lengt

9、h); for (int i = 0; i P_all.Length;i+ ) Console.WriteLine(“Person0=1“,i,P_alli.Age); Console.ReadKey(); ,遍历数组常用的两种方法:,int arr = new int8 1,2,3,4,5,6,7,8; foreach (int i in arr) Console.WriteLine(i); for (int i = 0; i arr.Length;i+ ) Console.WriteLine(“arr0=1“,i,arri); Console.ReadKey();,练习:,练习1:从一个整

10、数数组中取出最大的整数 练习2:计算一个整数数组的所有元素的和。 练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世” 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。 练习5:将一个字符串数组的元素的顺序进行反转。“3”,“a”,“8”,“haha” “haha”,“8”,“a”,“3”。第i个和第length-i-1个进行交换。 求平均值,求最大值,求和,实验:冒泡排序法,int i, j, temp; int a = 22, 44, 12, 4, 234, 54,

11、 65, 34 ; for (i = 0; i aj + 1) temp = aj; aj = aj + 1; aj + 1 = temp; for (i = 0; i a.Length; i+) Console.WriteLine(ai); Console.ReadKey();,try-catch的使用(简单用法),try 有可能出现错误的代码; catch 如果try中的代码出现异常,则进去catch中 ,5.方法(函数)介绍,函数就是将一堆代码进行重用的一种机制。函数是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能

12、需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。 string s=Console.ReadLine()就是一个有返回结果的函数; Console.WriteLine(“hello“)就是一个有执行参数的函数,只有告诉WriteLine被打印的数据它才知道如何打印; int i=Convert.ToInt32(“22“)则是一个既有参数又有返回值的函数。 有了函数写代码就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织起来。,方法的定义及调用,方法的定义: 访问修饰符 stat

13、ic 返回值类型 方法名(参数) 方法体; 命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义。 方法一般定义在类中。 方法的调用 对于静态方法,若在同一个类中,直接写名字调用。 一般:类名.方法名(); return可以立即退出所在的方法。,常用的已经学过的方法:,Console.WriteLine(); Console.Write(); Console.ReadLine(); Console.ReadKey(); int.Parse(string); Convert.ToInt32(string); 对于由static修饰的方法,使用:类名.方法名()调用. 如果在类中调用自

14、己的由static修饰的方法,可以省略类名。,变量的作用域(只讲局部变量),在方法中定义的变量为局部变量。 阅读下面的程序,说一下输出结果是多少?,变量的作用域(生存周期),在方法中定义的变量称为局部变量 其作用域从定义开始,到其所在的大括号结束为止。 在一个方法中想要访问另一个方法中的变量,怎么办? 两种解决方法:参数和返回值 方法中的return语句,导致函数立即返回。 在返回值为void的函数中 return; 在返回值非void的函数中 return 值;,static void Main(string args) int a = 3; int b = PR(a); Console.W

15、riteLine(“a=0 PR(a)=1“,a,b); Console.ReadKey(); public static int PR(int a) return a+=1; ,练习:写一个方法,查找两个整数中的最大值: int Max( int i1 , int i2 ) 计算输入数组的和: int Sum( int values ),思考:,即然Console.WiteLine()是方法,那么为什么WiteLine的参数可以是字符串类型,也可以是数字类型,还可以是布尔类型char类型呢? 为什么要有方法的重载?,函数重载(函数重名),函数的重名: static void SayHello(string name) Console.WriteLine(“我是0“,name); static void SayHello(string name) Console.WriteLine(“I am0“,name); ,static void SayHello(string name) Console.WriteLine(“我是0“,name); static void SayHell

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

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

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