首页 > 解决方案 > 在 Java 中显示 3D 数组中的值

问题描述

我是 Java 新手,我正在尝试编写一个使用构造函数的代码,将员工姓名、员工编号和员工工资放入一个数组中,并使用一个简单的显示函数显示它。到目前为止我的代码失败了,我做错了什么以及如何在我的显示功能中显示它?

下面是到目前为止的代码。` 导入 java.util.Scanner; 导入 java.util.ArrayList;导入 java.util.List;

public class functionAssignment1 {
private int empNum;
private double empSal;
private String empname;

public functionAssignment1(int e, String d, double s){
    empNum = e;
    empname = d;
    empSal = s;
   
}

public int getEmpNum(){
    return empNum;
}

public double getSalary(){
    return empSal;
}
public String getname(){
    return empname;
}

public void display (){
    System.out.println()
}

public static void main(String[]args){
    List<functionAssignment1> employeeList= new ArrayList<functionAssignment1>();

    while (employeeList.size() < 5) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter your employee number: ");
        int e = sc.nextInt();
        System.out.println("Please enter your Employee name: ");
        String d= sc.nextLine();
        System.out.println("Please enter your Salary: ");
        double s = sc.nextDouble();
        employeeList.add(new functionAssignment1(e,d, s));
    }
}

}`

标签: javaarrayslistmultidimensional-array

解决方案


据我所知,您的代码中没有数组。您想要做的事情不需要 3d 数组,因为包含数字、姓名和薪水的 3 个并行数组就足够了。您可以使用 for 循环将输入添加到这些数组中。您的显示函数还应该接受数组作为参数并使用循环打印出元素,因为目前System.out.println没有打印任何内容。这应该有效:

import java.util.*;
public class functionAssignment1 {
private static int[] empNums;
private static double[] empSals;
private static String[] empnames;

public int[] getEmpNums(){
    return empNums;
}

public double[] getSalaries(){
    return empSals;
}
public String[] getnames(){
    return empnames;
}

public static void display (int[] nums, String[] names, double[] sals){
    for (int i = 0; i < 5; i++)
    {
        System.out.println(nums[i] + " " + names[i] + " " + sals[i]);
    }
}

public static void main(String[]args){
    Scanner sc = new Scanner(System.in);
    empNums = new int[5];
    empnames = new String[5];
    empSals = new double[5];
    for (int i = 0; i < 5; i++){
        
        System.out.println("Please enter your employee number: ");
        empNums[i] = sc.nextInt();
        System.out.println("Please enter your Employee name: ");
        sc.nextLine(); //so the input isn't skipped 
        empnames[i] = sc.nextLine();
        System.out.println("Please enter your Salary: ");
        empSals[i] = sc.nextDouble();
    }
    display(empNums, empnames, empSals);
}
}

我将 3 个变量更改为数组,随后更改了 get 方法以返回这些数组。变量也必须是静态的,因为它们是由 main 方法访问的,这是一个静态方法。display 方法也是如此 - 说到这里,现在运行一个 for 循环,它将打印每个数组的第 i 个元素,由空格分隔,用于所有 5 个元素。在将所有输入添加到数组之后,在 main 方法的末尾调用 display 方法。希望这可以帮助。


推荐阅读