2012-05-05 78 views
0
// Week 3 Checkpoint1: Payroll Program Part 2 
// Due May 04, 2012 
// Created by: Kennith Adkins 

import java.util.Scanner; 

public class Assignment1 
{ 
    public static void main (String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     // Variables 
     String employeeName = null; 
     int hours; 
     double rate; 
     double pay; 

     while (employeeName != "stop") 
     { 
     // Request information from user 
     System.out.print ("Employee Name: "); 
     employeeName = input.nextLine(); 
     System.out.print ("Hourly Rate: "); 
     rate = input.nextDouble(); 
     System.out.print ("Number of Hours worked this week: "); 
     hours = input.nextInt(); 

     // Calculate pay 
     pay = rate * hours; 

     // Display information 
     System.out.printf ("%s will get paid $%.2f this week.\n", employeeName, pay); 


     } 
    } 
} 

當我運行它運行良好的程序,當它擊中的循環和重複,員工姓名:和薪似乎成一團此外,我將如何得到它馬上。鍵入停止爲員工姓名後停止?工資計劃第2部分(的問題,同時運行

回答

0

由於這似乎是一個家庭作業問題,我會爲您提供一個學習方向。

所以對於員工姓名的問題,我會重定向到How do I compare strings in Java?

這個問題是因爲當您重新進入循環並調用掃描器(輸入).nextLine時,它會使用它實際上讀取它尚未看到的輸入文本。所以一種選擇是切換到其他的東西舔一個BufferedReader或者將掃描器的減速度降低到循環中。

更多的研究

我還沒有與掃描器類,看到這個後,工作多,我有點糊塗了。問題實際上是nextInt和nextDouble。他們不要求退貨章程,因此當你下一次調用剩餘的退貨字符時調用下一行。

所以我選擇重新進入掃描儀時重新輸入在這個特定的情況下工作,但你應該使用2掃描儀或移動掃描儀。

Scanner txtinput = new Scanner(System.in); 
Scanner numberinput = new Scanner(System.in); 
+0

我將打印件更改爲printlns,它仍然出現相同的問題。我很欣賞這個鏈接。 – Usdblades

+0

你可以準確地告訴我你的意思嗎?我可能不會理解這一點。 – Krrose27

+0

當我運行程序,它可以完美運行,然後當它循環, 它scrunches像這樣 員工名稱: 每小時收費: (這是它讓我開始鍵入再次 – Usdblades