【问题标题】:Display Values in from 3D Array in Java在 Java 中显示 3D 数组中的值
【发布时间】:2020-10-21 23:20:22
【问题描述】:

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

}`

【问题讨论】:

  • 描述“失败” - 你有任何错误吗?如果是这样,请将错误消息添加到您的问题中。
  • 顺便说一句。我在您的代码中没有看到数组(args 除外),尤其是多维数组。
  • "编写一个程序,从用户那里接受 5 个员工 ID 和相应的姓名和工资,并将它们存储在三个数组中。将这些数组作为参数传递给函数 display()。这个 display()将以下列格式显示数组的内容"

标签: java arrays list multidimensional-array


【解决方案1】:

据我所知,您的代码中没有数组。您想要做的事情不需要 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 方法。希望这会有所帮助。

【讨论】:

  • 感谢您的回复!我还有一个问题,为什么需要以下 get 方法? "public int[] getEmpNums(){ return empNums; } public double[] getSalaries(){ return empSals; } public String[] getnames(){ return empnames;"
  • 好吧,它们并不是真正需要的,但是由于某种原因你的代码中有 get 方法,所以我认为你需要它们来做其他事情。我只是将它们更改为使用新的数组变量。仅当您尝试从另一个类访问变量时才需要它们。
猜你喜欢
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2015-05-01
相关资源
最近更新 更多