I have constructed a source code for Java Payroll Part 3: I'm receiving the following error when I try to compile my program: PayrollPart3.java:56: 'else' without 'if' ^else
Any advice would be appreciated to why I am getting this error. Thanks!

// Fig. 1.3: Payroll Part 3
// Program stores and retrieves employee's data.

import java.util.Scanner;// program to use import scanner

public class PayrollPart3

    // main method begins java execution
    public static void main (String[] args)

	   System.out.println( "Welcome to the Payroll Program!");
        Employee emp = new Employee();
        Scanner input = new Scanner(System.in);// create scanner to obtain input from command window

        double payRate;
        double hoursWorked;
        double earnedPay;

        while (true)
			//Get employee name
            System.out.println("\nEnter Employee's Name or stop to exit program :");

			if(!emp.getName().equalsIgnoreCase("Stop"));// program exits if "stop" is entered

                    //Get pay rate
                    System.out.print ("Enter Employee payRate: $"); //prompt for pay rate

                    while (emp.getpayRate() <= 0)

                        System.out.println ("Invalid amount, pay rate must be positive number");
                        System.out.print ("Please re-enter valid pay rate: $");
                        // Loop until valid number is entered for pay rate: while (setpayRate < 0.0)
                    } // end while

                    // Get hours worked
                    System.out.print ("Enter number of hours worked: ");//prompt for hours worked
                    while (emp.gethoursWorked() <= 0 )

                        System.out.println ("Invalid amount, hours worked must be a positive number");
                        System.out.print ("Please  re-enter valid hours worked: ");
				//Display output results and call methods in class
                System.out.printf("%s's weekly earned pay is: $%.2f\n", emp.getName(), emp.getpayRate()*emp.gethoursWorked ());
        } // end while (true)

    } // end main

}//end class PayrollPart3

//  Class Employee
class Employee
    private String name;
    private double hourlyRate;
    private double hoursWorked;

    public Employee ()
        name = "";
        hourlyRate = 0.0;
        hoursWorked = 0.0;

    //  constructor
    public Employee(String employeenameIn, double hourlyRateInDollarsIn, double hoursWorkedInWeekIn) {
        name = employeenameIn;
        hourlyRate = hourlyRateInDollarsIn;
        hoursWorked = hoursWorkedInWeekIn;
    } // end constructor

    public void setName (String name) {
        this.name = name;

    public String getName () {
        return name;

    public void setpayRate (double payRate) {
        this.hourlyRate = payRate;

    public double getpayRate () {
        return hourlyRate;

    public void sethoursWorked (double hours) {
        this.hoursWorked = hours;
    //call "getters" - retrieve information
    public double gethoursWorked () {
        return hoursWorked;

    public double getearnedPay () {
        return hourlyRate * hoursWorked;

} // end class Employee
8 Years
Discussion Span
Last Post by brizwhiz

Thanks that did the trick I had a feeling I was overlooking something simple. But I have one more question , How would I incorporate a message to the user that after they've enter "stop" that the program is exiting? I've tried different message statements and I end up with the same "if else" error.


I'm assuming you mean something like this--

                System.out.println("Program exiting. Thank you, and have a nice day!");
        } // end while (true)

Tnakf you I see what my problems was I was fixed on stating my message under the if statement instead of the else statement. Thank you so much for your help!!!

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.