Note that there are some explanatory texts on larger screens.

plurals
  1. POJava switch statment, search of array
    text
    copied!<pre><code>//TestEmployeesProgram driver with menu &amp; object array. import java.util.*; public class TestEmployeesProgram { public static Scanner console = new Scanner(System.in); public static void main(String[] args) { final int MAX = 7; Employee employee[] = new Employee[MAX]; int choice,k; String name; boolean notFound; employee[0] = new Manager("Jerry Bloggs","gfr",5,38.5); employee[1] = new Manager("Joe Bloggs","gdr",4,32.5); employee[2] = new Admin("Mary Jennings","nnv",35.3,88.5,34.3); employee[3] = new Clerk("Brian Jones","bbl",42.4,78.5,23.5,45.3); employee[4] = new Manager("John Bloggs","gvr",5,33.5); employee[5] = new Admin("Bridget Jennings","nvv",45.3,98.5,36.3); employee[6] = new Clerk("Jack Jones","bbb",43.4,78.5,23.5,47.3); //Initial Read choice = showMenu(); //Continue Until 4/Exit while (choice != MAX) { switch (choice) { case 1://Manager System.out.println(); System.out.printf("%s %-16s %-10s %6s","Name","Id","Hours Worked","Pay"); System.out.println("\n=================================================="); for (k = 0; k &lt; MAX; ++k) { if (employee[k] instanceof Manager){ //use of string method instance of. System.out.println(employee[k].toString()); } } break; case 2://Administration System.out.println(); System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota"); System.out.println("\n=================================================="); for (k = 0; k &lt; MAX; ++k) { if (employee[k] instanceof Admin){ System.out.println(employee[k].toString()); } } break; case 3://Clerk System.out.println(); System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota","Units Sold"); System.out.println("\n=================================================="); for (k = 0; k &lt; MAX; ++k) { if (employee[k] instanceof Clerk){ System.out.println(employee[k].toString()); } } break; </code></pre> <p>I was running the program and the name search in case 4 goes directly to default "employee name not found" and doesnt allow user input.I looked through the code but cant find the error,any tips or help?</p> <pre><code> case 4://Name search System.out.print("Enter employee name: "); name = console.nextLine(); k = -1; notFound = true; while ((k &lt; MAX-1) &amp;&amp; (notFound)) { ++k; if (name == employee[k].getName()){ System.out.println(); System.out.printf("%s %-16s %-10s %6s %-19s","Name","Id","Hours Worked","Pay","Admin Quota","Units Sold"); System.out.println("\n=================================================="); System.out.println(employee[k].toString()); System.out.println(); notFound = false; } }//end of case 4 while. if (notFound){ System.out.println("Employee name not found\n"); } break; case 7://exit System.out.println("Program exiting..."); System.exit(0); default: System.out.println("Invalid menu choice 1..3 of 7 to Exit"); }//end of switch //sub read choice = showMenu(); }//end of while }//end of main //Menu method for employee selection. public static int showMenu() { int choice; System.out.println(); System.out.println("Employee Program Menu"); System.out.println("1.Show Manager pay details "); System.out.println("2.Show Admin pay details "); System.out.println("3.Show Clerk pay details "); System.out.println("4.Search by employee name "); System.out.println("7.Exit"); System.out.print("Enter option: "); choice = console.nextInt(); return choice; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload