1. 首页
  2. 文档大全

sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数

上传者:8**** 2022-05-26 04:40:18上传 PPT文件 301.50KB
sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数_第1页 sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数_第2页 sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数_第3页

《sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数》由会员分享,可在线阅读,更多相关《sim【2014】-C#-04-第四章 常量-枚举-结构-数组-方法与函数(33页珍藏版)》请在文档大全上搜索。

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.枚举o定义了一种类型,并指定这种类型所可能的值。o语法:enum 自己的枚举类型值1,值2,o一般和类定义在同一级别。o每个值都有一个默认编

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

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

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

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

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

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

8、 /正确,可以省略数组个字使用索引器访问指定编号位置的元素,访问数组元素:nums0、nums1。索引从0开始。l数组的声明l数组的赋值与取值l常见问题:求平均值,求最大值,求和,排序(冒泡排序)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.Length); for (

9、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:从一个整数数组中取出最大的整数练习2:计算一

10、个整数数组的所有元素的和。练习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, 65, 34 ; for (i = 0; i

11、a.Length - 1; i+) for (j = 0; j 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.方法(函数)介绍o函数就是将一堆代码进行重用的一种机制。函数是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可

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

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

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

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

16、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 SayHello(int age) Console.WriteLine(我的年龄0,age);static void SayHello(string name) Console.WriteLine(我是0,name);sta

17、tic int SayHello(string name) return 10;static void SayHello(string name) Console.WriteLine(我是0,name);static void SayHello(string name,string nickname) Console.WriteLine(我是0,昵称是1,name,nickname);构成重载的条件:参数类型不同或者参数个数不同,与返回值无关。思考:o 方法只能返回一个值,当需要返回多个值时怎么办?o 例如:写一个方法,计算一个int类型数组中每个元素的总和、最大值与最小值?方法的out参数和

18、ref参数(*)函数参数默认是值传递的,也就是“复制一份”,例子:int age=20;IncAge(age);Console.WriteLine(age=0,age);out则是内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。例:int.TryParse。o out:注重于传出值o ref:可以传出和传入ref static void Main(string args) int a = 3; int b = PR(ref a); Console.WriteLine(a=0 PR(a)=1,a,b); Console.ReadKey(); public static int PR

19、(ref int a) return a+=1; out static void Main(string args) int a = 3; int b = PR(out a); Console.WriteLine(a=0 PR(a)=1,a,b); Console.ReadKey(); public static int PR(out int a) a = 1; return a; ref、out 小结:o 在传参的过程中,如果参数有ref和out修饰,参数的改变,调用者方法中参数也会随之改变。o out:注重于传出值o ref:可以传出和传入方法的练习:o 用方法实现找出一个int类型数组中

20、总和、最大值、最小值。用方法实现找出一个int类型数组中总和、最大值、最小值。 static void Main(string args) int AA = 21, 4, 13, 5, 6, 37, 8, 29 ; int max = 0, min = 0, sum = 0; sum = reMin_Max(AA, out max, out min); Console.WriteLine(总和=0 最大值=1 最小值=2, sum, max, min); Console.ReadKey(); /用方法实现找出一个int类型数组中最大值和最小值。 public static int reMin_Max(int numbers, out int max, out int min) int sum = 0; max = numbers0; min = numbers0; for (int i = 0; i max) max = numbersi; if (numbersi min) min = numbersi; return sum;


文档来源:https://www.renrendoc.com/paper/212420650.html

文档标签:

下载地址