递归编程
对于一些复杂的代码逻辑,如果 希望重复使用这些代码,并且做到随时任意使用,那么就可以将这些代码放在一个大括号{}
当中,并且 起一个名字。使用代码的时候,直接找到名字调用即可。
-
程序开始执行的时候是先执行 main 方法。因为 main 方法是一个入口
-
在 java 语言中所有的方法体中的代码都必须遵循自上而下的顺序依次逐行执行
-
main 方法不需要程序员手动调用,是由 JVM 调用的。但是除了 main 方法之外其他的方法,都需要 程序员手动调用。
-
方法只有调用的时候才会执行,方法不调用是不会执行的。
-
方法定义在类体当中。方法定义的先后顺序没有关系
-
方法中的变量都属于局部变量。方法结束之后,局部变量占用的内存会自动释放。自定义方法方法的概念: Java方法类似于其他编程语言里面的函数,是一段可以重复调用的代码。方法的作用: 简化代码,提高代码的可读性,可维护性,可重用性,安全性。语法格式: 修饰符 public static返回值类型:用于限定调用方法值的数据类型。
返回值:被return语句返回的值,该值会返回给调用者。
return关键字用于结束方法以及返回方法指定类型的值。参数名 : 是一个变量,用于接收调用方法指定类型的值。方法的分类根据方法有没有参数可以分为有参和无参方法的调用实参和形参的类型必须一一对应,另外个数也要一一对应。函数返回值小转大 —> 自动类型转换函数实参小转大 —> 自动类型转换特殊关键字break; 用来终止 switch 或者离它最近的循环。continue 用来终止本次循环,进入下次循环return; 用来终止它所在的一个方法的执行,返回调用处。System.exit() ;用来结束程序运行。递归需具备的条件子问题须与原始问题为同样的事,且更为简单不能无限制调用本身,须有个出口,化简为非递归状态处理递归的次数不能太多,否则容易造成栈内存溢出 java.lang.StackOverflowError网上有种说法是一般建议不要超过 300 层构造方法不能递归调用。
-
练习题
- 键盘输入两个正整数,求两个数的最大公约数
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 编写代码模拟三次密码输入的场景 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序
- 输出9*9的乘法口诀表
- 第一天存1元,以后每天比前一天多存50%,他存到第几天,当天存的钱会超过10元,一个月(30天)后,他总共存了多少钱
- 有一个400米一圈的操场,一个人要跑10000米,第一圈50秒,其后每一圈都比前一圈慢1秒,按照这个规则计算跑完10000米需要多少秒
- 井里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米。计算蜗牛需要多少天才能从井底到爬出来
- 计算"1!+2!+...+200!=”的值
- 上樓梯問題
- 猴子吃桃 每天吃一半数量多一个,第十天还剩一个,求刚开始总共有多少桃子
- 计算阶乘和
- 将10进制转换为8进制
- 假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。那么求它在第10次落地时,共经过多少米?第10次反弹多高?