我是新手,可以使用一些提示。我的while循环似乎没有正常工作。他们没有显示我的错误消息或检测到我输入的任何负数。
Scanner input = new Scanner(System.in);
String employeeName;
double hourlyRate;
double hoursWorked;
double weeklyPay;
System.out.print("Enter the employee name: ");
employeeName = input.nextLine();
while (!("stop".equals(employeeName))){
System.out.print("Enter the employee's hourly rate: ");
hourlyRate = input.nextDouble();
while (hourlyRate < 0) {
System.out.println("Enter a positive number");
hourlyRate = input.nextDouble();
}
System.out.print("Enter the number of hours the employee worked: ");
hoursWorked = input.nextDouble();
while (hoursWorked < 0){
System.out.println("Enter a positive number");
hoursWorked = input.nextDouble();
}
System.out.println(employeeName + " Weekly pay: " + (hourlyRate * hoursWorked));
employeeName = "stop";
}
当我运行此项并输入负数时,它不会显示我的错误消息。它只显示我输入的两个数字的结果,就好像它们不是负数,并且它会继续执行程序的其余部分。这就像它没有检测到我的负数。
答案 0 :(得分:1)
我刚刚运行了你的代码,除非我误解了你的问题,否则我看不到你所描述的行为。每当我输入一个负值时,它就会再次输入一个数字。我会尝试再次编译和运行。你在使用IDE吗?
答案 1 :(得分:0)
我运行了你的代码。它工作正常。这是你想要的错误。 您提供的输入是什么?
答案 2 :(得分:0)
我运行程序,运行正常。也许尝试重新启动IDE以清除所有缓冲区..
答案 3 :(得分:0)
(这实际上是一个评论,只作为答案发布,以便我可以包含代码。)
我接受了程序并添加了一些调试输出。我建议尝试这个版本。如果问题是可疑的版本问题,您要么无法获得额外的输出,要么它将开始工作。如果您获得额外输出并且问题仍然存在,请发布新输出。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String employeeName;
double hourlyRate;
double hoursWorked;
double weeklyPay;
System.out.print("Enter the employee name: ");
employeeName = input.nextLine();
while (!("stop".equals(employeeName))) {
System.out.print("Enter the employee's hourly rate: ");
hourlyRate = input.nextDouble();
System.out.println("First call: "+hourlyRate);
while (hourlyRate < 0) {
System.out.println("Enter a positive number");
hourlyRate = input.nextDouble();
System.out.println("Second call: "+hourlyRate);
}
System.out.print("Enter the number of hours the employee worked: ");
hoursWorked = input.nextDouble();
System.out.println("Third call: "+hoursWorked);
while (hoursWorked < 0) {
System.out.println("Enter a positive number");
hoursWorked = input.nextDouble();
System.out.println("Fourth call: "+hoursWorked);
}
System.out.println(employeeName + " Weekly pay: "
+ (hourlyRate * hoursWorked));
employeeName = "stop";
}
}
}
以下是运行此程序的Eclipse控制台的示例复制粘贴,只有正输入:
Enter the employee name: xyzzy
Enter the employee's hourly rate: 10
First call: 10.0
Enter the number of hours the employee worked: 2
Third call: 2.0
xyzzy Weekly pay: 20.0
答案 4 :(得分:0)
守则工作正常。 既没有编译错误也没有任何异常。 输出也是所需的。