天天看點

Java方法02:可變參數和遞歸

可變參數

從JDK 1.5開始,Java支援傳遞同類型的可變參數給一個方法

具體規則:

  • 在方法聲明中,在指定參數類型後加一個省略号(...)
  • 一個方法隻能有一個可變參數,且位置必須是最後一個參數,普通參數要在它之前聲明
public class Hello {
    public static void main(String[] args) {
        add(1, 2, 3, 4, 5);  //可以傳遞任意個參數
    }
    public static void add(int...nums) {  //如果還有普通參數,一定要放在前面
        int max = nums[0];
        for (int i = 1; i < nums.length; i++){
            if (nums[i] > max){
                max = nums[i];
            }
        }
        System.out.println("最大值為:" + max);
    }
}
           

遞歸

遞歸就是方法自己調用自己,遞歸通常把一個大型複雜的問題層層轉化為一個與原問題i相似的規模較小的問題來求解,遞歸政策隻需少量的程式就可描述出解題過程所需要的多次重複計算,大大減少了程式的代碼量

不建議使用遞歸,容易導緻棧溢出!

遞歸結構包括兩部分

public class Hello {
    public static void main(String[] args) {
        System.out.println(f(5));  //計算n的階乘
    }
    public static int f(int n) {
        if (n == 1){  //遞歸頭,終止遞歸的條件,當n == 1時終止
            return 1;
        }else{  //遞歸體,當n != 1時,向下遞歸
            return n * f(n - 1);
        }
    }
}