java005方法定义和递归的练习

一,在java中如何定义一个函数:函数就是方法,在面向对象中就叫做方法,在main函数之前定义,方法中的每个参数中都必须要有数据类型,使用方法时可以直接调用,更加方便简洁。
模式1:如果方法中的返回值是void,后面不加return+数据;但是可以直接加return;,提前结束一个方法,方法中的每个参数中都必须要有数据类型,或者不定义数据类型,直接输出。结果不受数据影响可以定义返回值是void.
注意:方法不能嵌套定义,但是所定义的方法可以嵌套。

public stasic void f1(int a,int b){}//void返回值类型
//数据类型不能写成(int a,b)

模式2:
1,结果需要什么,返回值就定义什么。如果方法中没有用void,就必须要用到一个return语句。

public static int fa(int a){
return+数据;}

方法执行完之后的流程:
在这里插入图片描述
方法的练习1:求接收的三个数中的最大数

在这里插入图片描述
练习2:求两个数的最大公约数:
在这里插入图片描述
练习:定义两个数,输出一个矩形(可以通过这种方式做些好看的图形出来玩)

在这里插入图片描述
栈的结构,先进后出,后进先出:
在这里插入图片描述
两个方法相互调用,会进入死循环,显示内存不足,因为死循环一直产生数据
在这里插入图片描述

通过上面我们学到一个递归调用,所谓递归,就是递推回归。
先递推,再回归,下面程序运行结果是12488421
在这里插入图片描述
在这里插入图片描述

练习:有3 个人在一起坐着,问第一个人多大了,答比第二个人大2岁;
问第二个人多大了,答比第三个人大2岁,
问第三个人多大了,答10岁了!
问第一个人多大?
分析:第一个人的年龄=第二个人的年龄+2
第二个人的年龄=第三个人的年龄+2
第n个人的年龄=第n+1个人的年龄+2
转折:第三个人的年龄=10;
在这里插入图片描述
方法的定义
返回值:结果要啥返回值就定义啥,此处需要一个int
参数:结果受什么的影响参数就定义什么n
返回值中必须用到规律,规律中必须调用自身

练习2:从1加到100的和?
规律:
1加到100的和=1加到99的和+100
1加到99的和=1加到98的和+99
1加到98的和=1加到97的和+98

1加到3的和=1加到2的和+3
1加到2的和=1加到1的和+2
1加到n的和=1加到n-1和+n
转折:1加到1的和=1;
在这里插入图片描述
练习3,猴子吃桃:
有一颗桃树,有一只猴子第一天吃掉树上的一半,扔掉一个
第二天吃掉树上的一半,扔掉一个
第三天吃掉树上的一半,扔掉一个

第七天还没吃呢,就只剩1个
问第一天树上有多少桃子
分析:
第一天树上有多少桃子=第二天树上有多少桃子+12
第二天树上有多少桃子=第三天树上有多少桃子+1
2

第N天树上有多少桃子=第N+1天树上有多少桃子+1*2
转折:第七天树上桃子数=1;
在这里插入图片描述
练习:判断一个数是不是质数
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44699728/article/details/89316830