2012-05-05 11 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?

にリダイレクトされます scrunchingの問題はbecaですループを再入力してscanner(input).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