05_函数

函数

一、引入
// 要求用循环实现每一行之间用 30个 = 号隔开
		
		System.out.println("好好学习");
		
		for(int i=1;i<=30;i++){
			System.out.print("=");
		}
		System.out.println();
		
		System.out.println("天天向上");
		
		for(int i=1;i<=30;i++){
			System.out.print("=");
		}
		System.out.println();
		
		System.out.println("good good study");
		
		for(int i=1;i<=30;i++){
			System.out.print("=");
		}
		System.out.println();
		
		System.out.println("day day up");

存在的问题:

  1. 代码冗余,代码量太大
  2. 维护性差,复制容易,修改难

如何解决此问题????

  1. 对反复的代码只写一次,并对它起个名字
  2. 想使用次功能代码时,只需要通过名字执行对应的功能即可。
二、函数的概念【理解】
  1. 概念:执行特定功能代码组成的一个整体,可以通过名字反复使用。

  2. 使用函数流程:

    (1) 定义函数:

    ​ a. 函数的声明 : 约定函数实现功能 --》名字

    ​ b. 函数的实现:实现对应的函数约定的功能。–》将特点功能代码给出

    (2) 函数的调用:通过函数名让函数执行对应的功能代码。

  3. 函数的定义位置:定义在类以内,与main函数并列的位置。

    ~~~java
    

// 1不可以
public class Test{
// 2可以定义函数
public static void main(String[] args){
System.out.println(“这是Main函数…”);
// 3不可以
}
// 4可以定义函数
}// 5不可以
~~~

  1. 函数的定义:【开发应用重点】

    (1) 语法:public static 返回值类型 函数名(数据类型 变量名,数据类型 变量2){

    ​ // 函数的功能代码->函数的实现(函数体)

    ​ }

    (2) 函数的声明:public static 返回值类型 函数名(数据类型 变量名, 数据类型 变量名2)

    ​ 函数的返回值类型、函数名、形参列表称为函数的三要素。

    ​ a. 函数名: 望文生义,遵循驼峰命名法(第一个单词的首字母小写,其余单词首字母大写)

    ​ b. 参数:调用者调用函数的时,传递的数据成为参数。

    ​ I. 形式参数: 在函数声明的时候 ()中定义的参数称为形式参数,简称形参。

    ​ II. 使用:形式参数它相当于 函数的内容的局部变量,在函数内部可以直接通过参数名直接

    ​ 使用(只能在当前函数内部使用)

    ​ III. 形式参数的定义 :函数声明 (数据类型 参数名,数据类型 参数名) -》 可以定义n个

    ​ -》 形参列表

    ​ c. 返回值类型 :约定了函数返回给调用者的结果类型

    ​ (1) 返回值结果为 void ,则代表函数没有结果返回,但是可以 return ; 结束当前函数的调用。

    ​ (2) 返回值类型为 8种基本数据或是对象类型,代表函数必须有 return XXX; 语句

    ​ return 返回的结果必须和约定的返回值类型结果一致。

    ​ (3) return 的作用:

    ​ a. 将函数的结果 返回给调用者

    ​ b. 结束当前函数 (return 语句后面不允许在定义任何的语句)

    ​ (4) 注意事项:如果 return 语句定义在分支结构中,必须保证每一个分支都有return 语句。

    (3) 函数的实现:{}

三、函数的调用:【开发应用重点】
  1. 函数的调用:函数名(); // 可以被调用 n 次

  2. 带参数的调用: 函数名(数值,数值2);

    (1) 调用者传递的数值被称为实际参数,简称为实参。

    (2) 实参的作用:实参给形参赋值,实参必须和形参 的个数、顺序、类型一致。

  3. 带有返回值的函数调用:

(1) 数据类型 变量 = 函数名(实参); // 数据类型 需要和返回值的数据类型一致

(2) 带有返回值的函数调用之后,对结果可以不进行任何处理 // 应用场景几乎没有

(3) 带有返回值的函数调用之后,直接参与打印或是运算

四、函数的作用
  1. 减少代码的冗余

  2. 提高代码的可维护性

  3. 提高代码的重用性

  4. 利于分工,协同合作

五、函数的运行机制【理解】
  1. 函数的嵌套调用:被调函数的内部,又调用了其他的函数。
  2. 函数的执行原理:程序执行过程中,遇到函数的调用,则程序跳到被调用的函数内部执行,被调用函数执行完之后,如果有返回值带着返回值返回到调用位置,没有返回值,直接返回到被调用的位置,程序继续往下执行。
六、递归调用【理解】
  1. 概念:一个函数的内部调用了自身函数,这种现象称为递归调用。

  2. 实际开发中,需要给递归设置合理的出口,避免无穷递归。

  3. 例子:

    //计算 n 的阶乘 = n * n-1 的阶乘
    public static int jieCheng(int n){
        if(n == 1 || n==0) return 1;   // 设置出口
        return n*jieCheng(n-1);
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值