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. 函数的实现:实现对应的函数约定的功能。--》将特点功能代码给出 // 要求用循环实现每一行之间用 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");
(2) 函数的调用:通过函数名让函数执行对应的功能代码。
3. 函数的定义位置:定义在类以内,与main函数并列的位置。

//b不可以

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

​编辑
4. 函数的定义:
【开发应用重点】 (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不可以 public class Test{ // 2可以定义函数 public static void main(String[] args){ System.out.println("这是Main函数..."); // 3不可以 } // 4可以定义函数 }// 5不可以
(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);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值