java - Delete one scanner, Payroll program Week 3 -


how able rid of 1 scanner? if use 1 scanner after weekly_pay output is:

employee name
enter hours worked week.

the program skips right on asking employee name variable. both scanners indeed loop asking employee name should.

//week 3 assignment  package weeklypay2;  import java.util.scanner; // importing java utility class scanner   public class weeklypay2 // class weeklypay {     //main method     public static void main(string[] args)     {         scanner scanner = new scanner(system.in);         scanner scanner1 = new scanner(system.in);          string employee_name = null; // variable employee name         double hours_worked = 0, // variable weekly hours worked         pay_rate = 0, // variable pay rate per hour         weekly_pay = 0; // weekly pay = hours * pay_rate          while (employee_name!="stop")         {             system.out.println("");             system.out.println("employee name"); // prompt, employees name             employee_name = scanner1.nextline();              if (employee_name.equalsignorecase("stop"))               {                   system.out.print("exiting program");                   break;               } // ends if statement               else             {                   system.out.println("enter hours worked week");                 //prompt, hours worked current week                 pay_rate = scanner.nextdouble();                  while(pay_rate < 0.01)                 {                     system.out.print("error!!, input postive number: \n");                     pay_rate = scanner.nextdouble();                 }                  system.out.println("enter employees hourly pay rate");                  // prompt, employees pay rate                 hours_worked = scanner.nextdouble();                   while(hours_worked < 0.01)                 {                     system.out.print("error!!, input postive number: \n");                     hours_worked = scanner.nextdouble();                 }                  weekly_pay = (double) hours_worked * (double) pay_rate; // setting variable weekly_pay                 system.out.println(employee_name + "'s weekly pay $" + weekly_pay ); // output employees name , weekly pay             }         }         scanner.close();         scanner1.close();     } //ends main method } //ends class weeklypay 

well first thing careful naming scanner. don't start capital. big thing don't want compare strings using !=, not intended string variables. there fun method comparing strings .equals() or .equalsignorecase() depending if want non-case sensitive. after changing few things in code works fine. heads java includes method formatting currency. you're pay numbers missing decimal. if @ numberformat added after scanner , @ println @ end can see simple use.

  import java.text.numberformat;   import java.util.scanner; // importing java utility class scanner     public class weeklypay2 // class weeklypay   {  //main method  public static void main(string[] args) {     scanner scanner = new scanner(system.in);     numberformat format = numberformat.getcurrencyinstance();     string employee_name = "";     double hours_worked = 0, // variable weekly hours worked     pay_rate = 0, // variable pay rate per hour     weekly_pay = 0; // weekly pay = hours * pay_rate      while (!employee_name.equalsignorecase("stop"))     {          system.out.println();         system.out.print("employee name: ");           employee_name = scanner.nextline();          if (employee_name.equalsignorecase("stop"))           {               system.out.print("exiting program");               break;         } // ends if statement           else         {               system.out.print("enter hours worked week: ");             //prompt, hours worked current week             pay_rate = scanner.nextdouble();              while(pay_rate < 0.01)             {                 system.out.print("error!!, input postive number:  ");                 pay_rate = scanner.nextdouble();             }              system.out.print("enter employees hourly pay rate: ");              // prompt, employees pay rate             hours_worked = scanner.nextdouble();               while(hours_worked < 0.01)             {                 system.out.print("error!!, input postive number: \n");                 hours_worked = scanner.nextdouble();             }              weekly_pay = (double) hours_worked * (double) pay_rate; // setting variable weekly_pay             system.out.println(employee_name + "'s weekly pay is: " + format.format(weekly_pay)); // output employees name , weekly pay             scanner.nextline();         }     }     scanner.close();  } //ends main method } //ends class weeklypay 

and output see:

enter image description here

oh, ps: keep program cleaner prompting input on same line, more intuitive , better at. means add line break after input not before :)


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -