Java教程

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

练习:编写一个计算器,且循环接收用户输入

这篇关于Java方法02:可变参数和递归的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!