【Java基础——12 可变参数、命令行参数】

在 Java 中,可变参数(varargs)允许你在方法中传递可变数量的参数。使用可变参数,可以让方法接收任意数量的参数,而不需要定义多个重载方法。

可变参数语法

可变参数的语法是在参数类型后面加上三个点(...),然后是参数名(printNumbers(int... numbers))。方法内部,参数会被当作数组处理。

public class VarargsExample {
    // 定义一个接收可变参数的方法
    public static void printNumbers(int... numbers) {
        for (int number : numbers) {
            System.out.println(number);
        }
    }

    public static void main(String[] args) {
        // 调用方法,传递不同数量的参数
        printNumbers(1, 2, 3);
        printNumbers(4, 5);
        printNumbers(6);
    }
}
多个参数

如果一个方法包含多个参数,可变参数必须是方法中的最后一个参数。

注意事项

  1. 唯一性:一个方法中只能有一个可变参数,并且可变参数必须是方法的最后一个参数。
  2. 性能:虽然可变参数使用起来很方便,但在需要高性能的场景下,频繁使用可变参数可能会影响性能,因为每次调用方法时都会创建一个新的数组。
public class VarargsExample {
    // 定义一个接收多个参数的方法,其中最后一个是可变参数
    public static void printDetails(String prefix, int... numbers) {
        System.out.println(prefix);
        for (int number : numbers) {
            System.out.println(number);
        }
    }

    public static void main(String[] args) {
        // 调用方法,传递前缀和不同数量的参数
        printDetails("Set 1:", 1, 2, 3);
        printDetails("Set 2:", 4, 5);
        printDetails("Set 3:", 6);
    }
}

下面是一个更复杂的示例,展示如何使用可变参数和普通参数结合的方式进行数学运算:

public class VarargsOperations {

    // 计算多个数的和
    public static int sum(int... numbers) {
        int total = 0;
        for (int number : numbers) {
            total += number;
        }
        return total;
    }

    // 查找多个数中的最大值
    public static int max(int... numbers) {
        int maxValue = Integer.MIN_VALUE;
        for (int number : numbers) {
            if (number > maxValue) {
                maxValue = number;
            }
        }
        return maxValue;
    }

    // 查找多个数中的最小值
    public static int min(int... numbers) {
        int minValue = Integer.MAX_VALUE;
        for (int number : numbers) {
            if (number < minValue) {
                minValue = number;
            }
        }
        return minValue;
    }

    public static void main(String[] args) {
        // 计算和
        System.out.println("Sum of 1, 2, 3: " + sum(1, 2, 3));
        System.out.println("Sum of 4, 5, 6, 7: " + sum(4, 5, 6, 7));

        // 查找最大值
        System.out.println("Max of 1, 2, 3: " + max(1, 2, 3));
        System.out.println("Max of 4, 5, 6, 7: " + max(4, 5, 6, 7));

        // 查找最小值
        System.out.println("Min of 1, 2, 3: " + min(1, 2, 3));
        System.out.println("Min of 4, 5, 6, 7: " + min(4, 5, 6, 7));
    }
}

命令行传递参数

在 Java 中,可以通过命令行传递参数给 main 方法来配置程序的运行。传递的参数会作为字符串数组传递给 main 方法。下面是一个详细的示例,展示如何从命令行传递参数并在程序中使用这些参数。

public class CommandLineExample {
    public static void main(String[] args) {
        // 检查是否有参数传递
        if (args.length == 0) {
            System.out.println("No arguments provided.");
            return;
        }

        // 遍历并打印所有参数
        System.out.println("Arguments provided:");
        for (int i = 0; i < args.length; i++) {
            System.out.println("Argument " + i + ": " + args[i]);
        }

        // 示例:处理具体参数
        if (args.length >= 2) {
            String operation = args[0];
            int num1 = Integer.parseInt(args[1]);
            int num2 = Integer.parseInt(args[2]);

            switch (operation) {
                case "add":
                    System.out.println("Result: " + (num1 + num2));
                    break;
                case "subtract":
                    System.out.println("Result: " + (num1 - num2));
                    break;
                case "multiply":
                    System.out.println("Result: " + (num1 * num2));
                    break;
                case "divide":
                    if (num2 != 0) {
                        System.out.println("Result: " + (num1 / num2));
                    } else {
                        System.out.println("Cannot divide by zero");
                    }
                    break;
                default:
                    System.out.println("Unknown operation: " + operation);
            }
        } else {
            System.out.println("Insufficient arguments for operation.");
        }
    }
}

运行代码并传递参数: 

java CommandLineExample add 5 3

运行 java CommandLineExample add 5 3 会输出:

Arguments provided:
Argument 0: add
Argument 1: 5
Argument 2: 3
Result: 8

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值