版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual C# 2005程序设计与应用简明教程,第5章 函数,第5章 函 数,学习目标: 掌握如何定义和使用函数; 掌握函数之间传送数据的方式; 理解变量的作用域;,5.1 定义和使用函数,5.1.1 定义函数 class Program static void write() (无返回值) Console.WriteLine(“Test output from function”); static void Main(string args) write(); Console.ReadKey(); ,5.1.2 返回值(有返回值) 当函数返回的是一个值的时候,用以下两种方式 修改函数:
2、在函数声明中指定返回值的类型,但不使用关键字void; 使用return关键字结束函数的执行,把返回值传送给调用代码; static () return 必须是一个值,而且必须是 ,而 可以是任何类型,包括复杂类型。,class Program static double write() return 1.2; Console.WriteLine(Test output from function); static void Main(string args) double m=write(); Console.WriteLine(m); Console.ReadKey(); 执行到retur
3、n语句时,表示从被调函数返回到主调函数继续执行,这个语句后面的代码不会执行。, 所有的处理路径都必须执行到 return 语句。 否则提示错误“并不是所有的处理路径都返回一个值”。 static double getval() double checkval; if (checkval5) return 4.7; ,5.1.3 参数 在函数接受参数时,必须指定以下内容: 函数在定义中制定接受的参数列表,以及参数类型; 在每个函数调用中匹配的参数列表,要求类型、个数、顺序匹配。 static void myfunction (string mystring,double mydouble) 调用
4、时:myfunction(2.6,”hello”); myfunction(“hello”);,namespace ConsoleApplication3 class Program static int maxvalue(int intarray) int maxval = intarray0; for (int i = 1; i maxval) maxval = intarrayi; return maxval; static void Main(string args) int myarray = 1, 8, 3, 6, 2, 3, 9, 3, 11, 2 ; int maxval =
5、maxvalue(myarray); Console.WriteLine(the maximum value in myarray is 0, maxval); Console.ReadKey(); ,5.2.1 值参数:把一个值传递给函数使用,函数中此变量的任何修改都不影响函数调用中制定的参数。 class Program static void showdouble(int val) val *= 2; Console.WriteLine(val doubled=0, val); static void Main(string args) int mynumber = 5; Console
6、.WriteLine(mynumber=0, mynumber); showdouble(mynumber); Console.WriteLine(mynumber=0, mynumber); Console.ReadKey(); ,程序输出: mynumber=5; mynumber=10; mynumber=5;,5.2 引用参数和值参数,class Program static int showdouble(int val) val *= 2; return val; static void Main(string args) int mynumber = 5; Console.Writ
7、eLine(mynumber=0, mynumber); mynumber=showdouble(mynumber); / Console.WriteLine(showdouble(mynumber); Console.WriteLine(mynumber=0, mynumber); Console.ReadKey(); ,程序输出: mynumber=5; mynumber=10; /mynumber=5; 10; mynumber=5;,5.2.2 引用参数:函数处理的变量与函数调用中的使用的变量相同,而不仅仅是值相同的变量。因此对该变量进行的任何修改都回影响到用作参数的变量值,只需要用r
8、ef关键字指定其为引用参数。ref变量必须初始化过,而且不能为常量。 class Program static void showdouble(ref int val) val *= 2; Console.WriteLine(val doubled=0,val); static void Main(string args) int mynumber = 5; /const int mynumber=5; Console.WriteLine(mynumber=0, mynumber); showdouble(ref mynumber); Console.WriteLine(mynumber=0,
9、 mynumber); Console.ReadKey(); ,程序输出: mynumber=5; mynumber=10; mynumber=10;,5.3 变量的作用域,class Program static void write() Console.WriteLine(mystring=0, mystring); static void Main(string args) string mystring = 该字符串定义在Main()方法中; write(); Console.ReadKey(); ,出错原因: 应用程序主体Main()中定义的变量mystring不能在write()函
10、数中访问。 因为变量有一个作用域,只有在这个作用域中,变量才是有效的。 作用域包括定义变量的代码块和直接嵌套在其中的代码块,而函数中的代码块和调用它们的代码块是不同的。,class Program static string mystring; static void write() string mystring = write()方法中的mystring变量; Console.WriteLine(局部变量mystring=0,mystring); Console.WriteLine(全局变量mystring=0, Program.mystring); static void Main(st
11、ring args) string mystring = Main()方法中的mystring变量; Program.mystring=全局变量; write(); Console.WriteLine(局部变量mystring=0,mystring); Console.WriteLine(全局变量mystring=0, Program.mystring); Console.ReadKey(); 若局部变量和全局变量同名,全局变量就会被屏蔽。,其它结构中变量的作用域 int i; for(i=0;i5;i+) string linenumber=Convert.ToString(i); Cons
12、ole.WriteLine(“0”,linenumber); Console.WriteLine(“最后一行是:0”,linenumber); int i; string linenumber; for(i=0;i5;i+) string linenumber=Convert.ToString(i); Console.WriteLine(“0”,linenumber); Console.WriteLine(“最后一行是:0”,linenumber);,int i; string linenumber=0; for(i=0;i5;i+) string linenumber=Convert.ToString(i); Console.WriteLine(“0”,linenumber); Console.WriteLine(“最后一行是:0”,linenu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位土木工程岗2026面试历年真题题库试卷及参考答案
- 2026事业单位计算机岗面试高频考题题库及参考答案
- 事业单位人力资源岗面试历年真题全真模拟试卷及参考答案
- 2026年湖南科技职业学院高职单招笔试语文历年参考题库含答案解析
- 2026年湖南九嶷职业技术学院高职单招笔试物理历年参考题库含答案解析
- 2026年泉州职业技术大学高职单招笔试化学历年参考题库含答案解析
- 2026年河南测绘职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年河北女子职业技术学院高职单招笔试化学历年参考题库含答案解析
- 2026年江西服装学院高职单招笔试英语历年参考题库含答案解析
- 2025年期货从业考试《期货投资分析》真题及答案
- 《护理管理培训》课件
- 2026重庆国际物流枢纽园区建设有限责任公司及子公司招聘19人笔试模拟试题及答案解析
- 检察官遴选考试真题及答案解析
- 江苏省无锡市梅村高级中学2025-2026学年高一上学期10月阶段检测物理试卷(含答案)
- 2026秋新北师大版数学六年级上册教学课件:数学好玩 五子棋
- 生物酶制剂生产流程技术指南
- 超声评估胆囊腺肌症
- TSG08-2026《特种设备使用管理规则》解析
- 北师大版四年级上册书法练习指导 教案
- 农田管护协议书范本
- 操作系统设计原理 课件 第1章 操作系统概述
评论
0/150
提交评论