函数可以帮助进行模块化设计。
前提条件就是对问题域,分析找出组成问题域的关键点(子问题)。
分而治之。以大化小。
函数的参数:
函数运算时需要参与运算的值(外部的),被称为参数。
函数的参数是主调函数与被调函数进行数据传递的主要渠道,
函数头上的块级注释其实就是对函数的简单说明,在调用时会出现提示,提示中的消息就是注释的内容。
形参和实参
形参是函数定义时出现,主要是用于约束传入数据的类型
实参是函数被调用时出现,主要是按照形参的约束传递数据。
实参是受到形参的约束的。这个约束主要是体现在数据类型上。
为啥叫形参列表或实参列表,是因为,函数定义时对参数的个数并没有限制,因此把这种就称为:形参列表或实参列表。
参数传递时是受到形参的约束,除了数据类型的约束外还有参数数量的约束。
形参还有顺序的约束,实参一定要和形参的顺序是一致的。
在形参数据类型相同的情况下,顺序并不会被检测。只有形参的数据类型不一样的情况下才会对实参的顺序检测。
当实参的数据类型和形参的数据类型不一致时必须要保证实参是可以隐式转换或显示转换的才行,否则就会出错。
===============================================
参数传递的方式:
1、值传递:就是将传入的值复制一份,然后传入到函数中,这种是默认传递方式。
2、引用传递:需要ref关键字,作用是将值的内存地址专递到函数中。这种传递方式也称为:引用传递
=====================================
函数的返回值
就是函数在执行完毕后将执行结果返回给主控函数,主控函数可以随意使用。
函数的返回值不是必须的,而是根据实际需要得来。
语法:
[访问修饰符] [static] 返回值类型 函数名称([形参列表]){函数体;}
其中返回值类型:
如果没有返回值是void的
如果有返回值则是具体的数据类型:包括已知的任意类型(已知的任意类型是指当前项目中可以使用的任意类型)
返回值使用的语法:
{
//函数体;
return 和函数定义同类型数据值;
}
函数在执行中一旦遇到return语句就表示函数执行完毕,将控制权交还给主控函数。
------------------------------
例子说明:
主函数中首先调用设置窗口的函数,然后调用菜单函数,菜单函数调用计算函数
Main---》SetWindowSize
|
|__>>Menu--->>Calculation
=================================
带有返回值的函数调用形式:
数据类型 变量=被调用函数(实参);//这里的变量的数据类型必须和被调函数的数据类型一致
被调函数(实参);//返回值无用处
带返回值的函数只能有一个返回结果(每次)
方法签名(函数签名):[访问修饰符] [static] 返回子类型 函数名称(形参列表)
----------------------------
注意:
函数如果定义了形参,那么在调用时必须按照形参列表中的参数个数、顺序、数据类型来传入具体的实参