问题描述
我发现循环语句真的很难,所以我需要帮助。该程序让用户输入每个销售人员的总销售额,计算他们的佣金,即 200 美元加上销售额的 9%,并显示销售人员的收入。此外,要汇总所有输入的总销售额,用户应输入 -1,从而结束程序。这个程序使用了一个while循环,输出应该是这样的:
ENTER SALES IN DOLLAR (-1 TO END): 5000.00
SALARY: $ 650.00
ENTER SALES IN DOLLAR (-1 TO END): 6000.00
SALARY: $ 740.00
ENTER SALES IN DOLLAR (-1 TO END): 7000.00
SALARY: $ 830.00
ENTER SALES IN DOLLAR (-1 TO END): -1
THE TOTAL SALARY FOR THE WEEK: $2200.00
GOOD DAY! THANK YOU FOR USING THE SYstem!
到目前为止,这是我拥有的代码:
public static void main(String[] args)
{
Scanner scan = new Scanner (system.in);
double sales = 0,salary = 0,totalSalary;
while (sales >= 1)
{
System.out.print("ENTER SALES IN DOLLAR (-1 TO END): ");
sales = scan.nextDouble();
salary = (sales + 200)* 0.09;
System.out.println("SALARY: $ " +salary);
}
}
}
我真的很困惑我应该把“while”放在哪里,以及如何用“-1”停止循环
解决方法
由于sales=0
,您的代码永远不会进入循环。要进入循环,请使用 do while 循环或使用其他 >= 1 的值进行初始化。
去阅读更多关于循环的内容:
- For 循环
- while 循环
- do-while 循环
https://www.geeksforgeeks.org/loops-in-java/
可以使用下面的代码参考
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double sales = 0,salary = 0,totalSalary;
System.out.print("ENTER SALES IN DOLLAR (-1 TO END): ");
sales = scan.nextDouble();
while (sales >= 1) {
salary = (sales + 200) * 0.09;
System.out.println("SALARY: $ " + salary);
System.out.print("ENTER SALES IN DOLLAR (-1 TO END): ");
sales = scan.nextDouble();
}
}
,
正如我所见,您必须检查输入是否为-1,然后结束计算并放置结果。 此外,用户可能会输入不正确的非数值,您必须捕获它,并且可能需要为负输入添加额外的检查。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double sales,salary,totalSalary = 0;
while (true) {
try {
System.out.print("ENTER SALES IN DOLLAR (-1 TO END): ");
sales = Double.parseDouble(scan.nextLine());
if (sales == -1) break;
salary = 200 + sales * 0.09;
System.out.println("SALARY: $ " + salary);
totalSalary += salary;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException");
}
}
System.out.println("THE TOTAL SALARY FOR THE WEEK: $" + totalSalary + "\n" +
" GOOD DAY! THANK YOU FOR USING THE SYSTEM!");
}
,
您可以创建一个无限循环,直到输入设置为 -1。
另外,你的计算是错误的,你应该使用 (x * 0.09) +200。
看这里
public static void main(String[] args)
{
double salary = 0,totalSalary = 0;
try(Scanner scan = new Scanner (System.in))
{
while (true)
{
System.out.print("ENTER SALES IN DOLLAR (-1 TO END): ");
salary = scan.nextDouble();
if (salary == -1)
break;
salary = (salary* 0.09) + 200;
totalSalary += salary;
System.out.println("SALARY: $ " +salary);
}
}
catch (Exception e)
{
}
System.out.println("THE TOTAL SALARY FOR THE WEEK: $" + totalSalary);
System.out.println("GOOD DAY! THANK YOU FOR USING THE SYSTEM!");
}
,
int sales;
double salary = 0,totalSalary = 0;
boolean keep = true;
while (keep)
{
System.out.print("\nENTER SALES IN DOLLAR (-1 TO END): ");
sales = scan.nextInt();
if (sales == -1)
{
keep = false;
}
else
{
salary = (sales * 0.09)+ 200;
System.out.println("SALARY: $ " +salary);
totalSalary = totalSalary + salary;
}
}
scan.close();
System.out.println("\nTHE TOTAL SALARY FOR THE WEEK: $ " +totalSalary);
System.out.print("GOOD DAY! THANK YOU FOR USING THE SYSTEM!");