gpt4 book ai didi

java - 如何使 for 循环从方法中输出数组的正确值

转载 作者:行者123 更新时间:2023-11-30 07:26:03 26 4
gpt4 key购买 nike

我正在开发一个程序,该程序获取具有给定 ID 号的员工的工资率和工作时间,将它们存储在数组中,并使用一种方法来确定员工的总工资,该工资也将存储在数组中。我的程序可以接受员工的工资率和工时,但是当它输出员工 ID 和相应的总工资时,它返回一组奇怪的字符,例如 [D@1909752.如何让程序正确输出给定员工的总工资?我认为问题出现在方法和将方法传递给最终的 for 循环之间,以及我的方法将 int 乘以 double 的事实,但我不知道从这里该怎么做。感谢您的帮助。我的代码如下。

import java.util.Scanner;

class Payroll
{
public static void main(String[] args)
{
int[] employeeId = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850, 7580489};

int[] hours = new int[7];

double[] payRate = new double[7];

for(int counter = 0; counter< 7; counter++)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the hours worked by employee #" + employeeId[counter]);
hours[counter] = keyboard.nextInt();

if (hours[counter] < 0)
{
System.out.println("Error: hours cannot be negative. The program will now close.");
System.exit(0);
}
else
{
continue;
}
}

for(int counter1 = 0; counter1< 7; counter1++)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the payrate of employee #" + employeeId[counter1]);
payRate[counter1] = keyboard.nextDouble();

if (payRate[counter1] < 6.0)
{
System.out.println("Error: payrate must be above 6.0. The program will now close.");
System.exit(0);
}
else
{
continue;
}
}

for (int counter2 = 0; counter2 < 7; counter2++)
{
System.out.println("The gross pay for employee #" + employeeId[counter2] + " is " + wages(employeeId, hours, payRate));
}
}

public static double[ ] wages(int[] employeeId, int[] hours, double[] payRate)
{
double[] wages = new double[7];

for(int counter2 = 0; counter2< 7; counter2++)
{
wages[counter2] = hours[counter2] * payRate[counter2];
}

return wages;
}

}

最佳答案

字符串[D@1909752toString()应用于double数组的默认输出。在声明中

    System.out.println("The gross pay for employee #" + employeeId[counter2] + " is " + wages(employeeId, hours, payRate));

方法wages返回一个double数组,并且你告诉程序打印整个数组,而不是一个特定元素。如果您想打印所有七个元素,则需要使用循环或 lambda 单独打印每个元素。

关于java - 如何使 for 循环从方法中输出数组的正确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36802928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com