可变参数
上章说到方法重载,对于不同数量(输入的参数类型不一致会报错)的参数我们可以通过方法重载的方式来解决,如果参数数量具有很强的不确定性,我们不可能写n个方法来一个一个定义,因此可变参数诞生了
在方法声明中在指定参数类型后加一个省略号(...)如:int...i
但是要注意的是一个方法只能有一个可变参数,而且必须是最后一个参数,任何普通参数必须在它之前声明
该节就是数组的衔接
i[]括号中的内容就是调用第几位,但要注意0也算一位
以上为输出最大值的方法,上面有一个坑,数组中第0项是第一项,但数组总共有几项还是几项所以,for循环中的i会被循环到小于数组总项大小-1的项,故不用等于号
递归
递归部分
- 递归头:什么时候不调用自身方法。如果没有头将陷入死循环
- 递归体:什么时候需要调用自身方法
如上图所示,递归和高中函数套函数很相似,自己引用自己来简化题目,上述为阶乘
备注:通常要给f1留一个初始的值,否则整个函数只有未知数无法运算
上图递归头为f1使之不会死循环
栈机制,由于不断的调用,会产生不必要的时间和开销,会很卡,递归深度不能太大,因此能不用就不用,使用前提他的基数必须比较小
作业
写计算器
试了很多遍一直不成功,关键在于使用scanner.nextInt的时候它不会读取换行符,导致换行符被留在缓冲区,被下一次的String读取
让String的输入一直为空,故要使用scanner.nextLine来清空缓存区
标签:调用,递归,参数,数组,可变,方法 From: https://www.cnblogs.com/javafirstlearn/p/17718813.html