首页 文章

JAVA在计算中使用数组中的指定值

提问于
浏览
0

这是一个非常基本的问题,但我刚开始使用JAVA,并且在数组方面遇到了一些问题 .

我想要做的是使用来自用户的6条信息填充数组:

  • 要输入的员 Worker 数,

  • 字母数字员工编号,

  • 一个名字,

  • 姓氏,

  • 他们工作的小时数,

  • 与薪级表对应的号码输入 .

到目前为止,我已经将这些输入转换为JAVA中的数组,但我想要做的是使用相应的数字输入来选择Pay Scale数组中的常量,然后使用该常量来计算每个员工的工资 .

例如,员工1在0级工作10小时,因此10 * 4.50,员工在规模1工作10小时,这将是10 * 4.62

import java.util.Arrays; //imports Array utility
import java.util.Scanner; //imports Scanner utility

public class test1 {

    static Scanner keyb = new Scanner(System.in);   //Adds a keyboard input 

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter the number of Employees: ");
        int employees = scanner.nextInt();
        String[] Employee = new String[employees];
        String[] FirstName = new String[employees];
        String[] LastName = new String[employees];
        double[] HoursWorked = new double[employees];
        double[] PayScale = {4.50,4.62,4.90,5.45,6.20};


        for (int i = 0; i < Employee.length; i++) {
            System.out.print("Enter Employee Number: ");
            Employee[i] = scanner.next();
            System.out.print("Enter Employee's First name: ");
            FirstName[i] = scanner.next();
            System.out.print("Enter Employee's Last name: ");
            LastName[i] = scanner.next();
            System.out.print("Enter Employee's Hours worked: ");
            HoursWorked[i] = scanner.nextDouble();
            System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
            PayScale[i] = scanner.nextDouble();
        }


        for (int i = 0; i < HoursWorked.length; i++) {
                System.out.println("Employee " + Employee[i] + " " + FirstName[i] + " " + LastName[i] + " has "
                        + HoursWorked[i] * PayScale[0]);

            }
        }
    }
}

我甚至接近解决方案吗?

我在JAVA可能会问什么?

也许我只是以错误的方式看待这一点,但对此有任何帮助将不胜感激 .

编辑

好的我将extras数组添加到代码Scanner scanner = scanner(System.in); System.out.println(“输入员 Worker 数:”); int employees = scanner.nextInt(); String [] Employee = new String [employees]; String [] FirstName = new String [employees]; String [] LastName = new String [employees]; double [] HoursWorked = new double [employees]; int [] PayScale2 = {0,1,2,3,4}; double [] PayScale = {4.50,4.62,4.90,5.45,6.20};

我只是不确定我将原始PayScale数组索引到哪里

PayScale的[PayScale2 [I]]

它会进入for语句代码块吗? (我试过把它放在那里然而我得到一个错误,它不是一个声明:/

1 回答

  • 1

    更改

    + HoursWorked[i] * PayScale[0]);
    

    + HoursWorked[i] * PayScale[i]);
    

    除此之外,在我看来,你正在做你所说的应该做的事情......

    你已经从这里得到 payscalesdouble[] PayScale = {4.50,4.62,4.90,5.45,6.20}; 所以以下内容没有多大意义:

    System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
                PayScale[i] = scanner.nextDouble();
    

    首先,如果你想 keep this number (Number 0 to 4) separately ,你应该使用 another Arraynot 你保留 Payscales 的那个,然后你可以 indexfirst array 保持 different rates ..否则你可以 directly 使用第一个数组 if you know 薪资等级对于每个员工......最终它与你想做什么以及你想做什么有关,但逻辑和工具都在那里 . If you call the 2nd array PayScale2 例如:

    System.out.print("Enter Employee's Payscale (Number 0 to 4): ");
                PayScale2[i] = scanner.nextDouble();
    

    那么你可以 index to the first array 例如:

    PayScale[PayScale2[i]]
    

    在这种情况下,如果用户输入 0 然后 PayScale2[i]0 然后 PayScale[PayScale2[i]] 将是 PayScale[0]4.5 或任何你设置的值等于第一个数组

相关问题