// 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);
}
}
}
当我运行程序时它运行正常。当它点击循环并重复时,员工姓名:和每小时费率似乎很多。另外,如何在输入员工姓名后停止立即停止?
答案 0 :(得分:0)
由于这似乎是一个家庭作业问题,我会指出你的学习方向。
因此,对于员工姓名问题,我会将您重定向到How do I compare strings in Java?
scrunching问题是因为当您重新进入循环并调用扫描程序(输入).nextLine时,它最终会实际读取它尚未看到的输入文本。因此,一种选择是切换到其他东西舔BufferedReader或将扫描仪减速度向下移动到循环中。
更多研究
我没有使用扫描仪类,看到这个后我有点困惑。问题实际上是nextInt和nextDouble。他们不会要求退货包机,因此当你下次拨打下一行时它会收到剩余的返回字符。
因此,我在重新输入时重置扫描仪的选项适用于此特定情况,但您应该使用2个扫描仪或离开扫描仪。
Scanner txtinput = new Scanner(System.in);
Scanner numberinput = new Scanner(System.in);