可变参数、递归

可变参数

  • Jdk1.5开始,Java支持传递同类型的可变参数给一个方法。
  • 在方法声明中,在指定参数类型后加一个省略号 (…)。
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数
public static void main(String[] args){
    //调用可变参数的方法
    printmax(34,45,456,4,6545,44,54,4,54);
    printmax(new double[]{1,2,3});
}
public static void printmax(double ...numbers){
    if(numbers.length==0){
        System.out.println("No argument passed");
        return;
    }
    double result = numbers[0];
    
    //找最大值
    for(int i=1;i<numbers.length;i++){
        if(numbers[i]>result){
            result=numbers[i];
        }
    }
    System.out.println("The max value is" +result)
}

递归

public static void main(String[] args) {
    System.out.println(f(5));
}
public static int f(int n){
if(n==1){
    return 1;//n=1返回值1
}else{
    return n*f(n-1);//f(n-1)公式 只要不等于1就一直递减,比如5则为5*f(5-1) 5*f(4),然后5*4*f(4-1),层层套用
}//基数比较小的时候可以用递归,否则压栈会导致内存严重不足。
}
posted @ 2022-08-12 15:03  Fred不想做咸鱼  阅读(30)  评论(0)    收藏  举报