1. 程式人生 > 其它 >Java方法02:可變引數和遞迴

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);
        }
    }
}

練習:編寫一個計算器,且迴圈接收使用者輸入