我应该如何将我的方法(带数组)放在 java 的 switch 语句中?

how should i put my method(with array) in a switch statement in java?

在 switch 语句中放置方法(带有数组代码)的正确方法是什么?

    public static void  prtEmployees(String empNo[], String Name[], int rate[]) {
    System.out.println("Employee No.    Employee Name   Rate/Hour");
    for(int i = 0; i < empNo.length; i++) {
        System.out.printf("%s: %s", empNo[i], Name[i], rate[i]);
    }

}
private void Action(int choice) {
switch(choice) {
case 1:
    prtEmployees(); // im having an error here
    break;

您的代码中的问题不在于使用开关,而是使用错误数量的参数调用方法。 prtEmployees 方法需要 3 个参数:

  1. 员工编号的字符串数组
  2. 员工姓名的字符串数组
  3. 员工费率整数数组

3个参数总是需要放置。

根据你的代码片段,我看不到你的输入在哪里,你的员工数据来自哪里。但是我创建了一个示例,我在主 class 中使用一些虚拟数据调用您的方法来举个例子:

public class Main {
    public static void main(String[] args) {
        String[] employeeNos = {"1", "2", "3"};
        String[] names = {"Alfred", "James", "Siegfried"};
        int[] rates = {2,3,5};

        Action(1, employeeNos, names, rates);
        Action(2, employeeNos, names, rates);
    }

    public static void  prtEmployees(String[] employeeNumbers, String[] names, int[] rates) {
        System.out.print("Employee No.\tEmployee Name\tRate/Hour\n");
        for(int i = 0; i < employeeNumbers.length; i++) {
            System.out.printf("%s.\t%s\t%d\n", employeeNumbers[i], names[i], rates[i]);
        }

    }
    private static void Action(int choice, String[] employeeNos, String[] names, int[] rates) {
        switch (choice) {
            case 1:
                prtEmployees(employeeNos, names, rates);
                break;
            case 2:
                System.out.println("No employee print because of choice 1");
                break;
            default:
                throw new IllegalArgumentException("Only choice 1 and 2 are allowed");
        }
    }
}

这给出了输出:

Employee No. Employee Name Rate/Hour

  1. Alfred 2
  2. James 3
  3. Siegfried 5 Only choice 1 and 2 are allowed

说明 首先,我使用选项 1 和一些虚拟数据调用操作方法,它将虚拟数据传递给打印方法,它会打印出员工数据的 3 列。 然后,我使用选择值 2 调用相同的方法,它会额外打印一行,只是为了说明它的功能。 只是为了好玩,我添加了一个默认行为,即除 1 和 2 之外的其他值将引发异常。