Java可变长参数和递归调用
Java可变长参数和递归调用
可变长参数
package base;
/**
* 可变长参数
* JDK5开始,java支持传递同类型可变长参数给一个方法
* 在方法声明中,在指定参数类型后加一个省略号
* 任何方法可以有一个可变参数,但是这个参数必须位于所有参数最后
*/
public class KeBianCanShu {
public static void main(String[] args) {
printMax(23,2,46,24,45.7);
printMax(new double[]{1,2,44.6,33.2});
}
public static void printMax(double...numbers){
if(numbers.length==0){
System.out.printf("No argument passed");
return;
}
double result = numbers[0];
for (int i = 0; i <numbers.length ; i++) {
if(numbers[i]>result){
result = numbers[i];
}
}
System.out.println("the max value is "+ result);
}
}
输出结果如下:
the max value is 46.0
the max value is 44.6
递归调用
递归就是A方法调用A方法,简单来说就是自己调用自己
递归结构包括两个部分:
递归头:什么时候不调用自身方法,如果没有头,就会陷入死循环
递归体:什么时候调用自身方法
package base;
public class DiGui {
public static void main(String[] args) {
DiGui diGui = new DiGui();
int temp = diGui.jieCheng(5);
System.out.println(temp);
}
public int jieCheng(int temp){
if(temp == 1){
return 1;
}else{
return temp * jieCheng(temp-1);
}
}
}
输出结果:120