简单的薪资计划

时间:2013-08-17 00:59:08

标签: java

修改工资核算程序应用程序,以便它继续请求分部信息,直到用户输入停止作为分部名称。此外,对应用程序进行编程,以检查员工人数和每位员工的平均工资是否为正数。如果员工人数或每位员工的平均工资不是正值,则应用程序应提示用户输入正数。

这是我提出的代码,它编译得很好,但没有像我期望的那样运行。

import java.util.Scanner; //program uses class SCanner

public class PayrollPart2
{

    public static void main( String[] args ) 
    {
        Scanner input = new Scanner( System.in ); // create Scanner to obtain input from command window

        // variables
        char name; // divisions's name
        int number1; // number of employees in the division
        double number2; // average salary for the employees
        double product; // total division payroll

            //prompt user to input division name
            System.out.print( "Enter Division's name, type stop to exit: ");
            String divisionName = input.nextLine(); //read line of text
                while (divisionName !="stop") 
                {
                //prompt user for number of employees in the division
                System.out.print( "Enter the number of employees in the division: ");
                //read number of employees from user's input
                number1 = input.nextInt();
                    while (number1 <= 0)
                    {
                        System.out.print("Please enter a positive number of employees in the division:"); // prompt
                        number1 = input.nextInt(); // input
                    }

                //prompt user to enter average salary of employees
                System.out.print("Enter average salary for the employees: " );
                //read average salary
                number2 = input.nextDouble();
                    while (number2 <= 0)
                    {
                        System.out.print("Please enter a positive number for the employees salary:"); // prompt
                        number2 = input.nextDouble(); // input
                    }

                //multiply Number1 by Number2
                product = number1 * number2;

                //displays division and total division payroll
                System.out.printf( "The division %s has a payroll of $%.2f\n" , divisionName, product );
                }
    } //end method main
} // end class PayrollPart2

我已经待了大约8个小时,此时我完全迷失了下一步。代码遍历循环但不要求不同的分区名称。在第一个提示符下键入exit命令实际上不会退出循环。我应该使用If / Else语句吗?我想我可以使用布尔但我不确定如何实现它。

1 个答案:

答案 0 :(得分:5)

使用字符串equals()方法进行字符串比较,而不是!=或==。您的代码中的一个问题是此声明:

while (divisionName !="stop") 

将其更改为

while(!("stop".equals(divisionName)))

!=将检查两个对象是否不是同一个内存对象,而equals方法将进行字符串内容比较。

还要注意字符串&#34; stop&#34;的反向比较。反对divisionName。如果divisionName为null,这将有助于避免空指针异常。

从相关帖子了解有关字符串比较的详情:Java String.equals versus ==