所以我正在参加Java课程的介绍,并且在完成我的作业时遇到了一些困难。
首先,我要粘贴作业指示,然后我会发布我的代码,这样你们都可以看到我在哪里挣扎,希望能够帮助我。
路线: 在工作的第一天,一个人一整天都赚了1.00美元。在工作的第二天,该人的每日工资翻了一番,达到2.00美元。工作的第三天,该人的每日工资再次翻倍至4.00美元。连续一天,一个人的工作日常工资增加一倍。
编写一个程序,要求用户输入他们工作的天数,然后计算他们每天赚取的工资以及他们所有日子的总工资。节目输出应该是每天的工资和所有日子的总工资。
输入验证:不要让用户输入小于1的天数。如果输入的数字小于1,请使用循环提示他们输入另一个天数。确保并确定输出格式。
我的代码:
import java.util.Scanner;
import java.text.DecimalFormat;
public class Homework7Pennies
{
public static void main (String[] args)
{
Scanner keyboard = new Scanner (System.in);
DecimalFormat formatter = new DecimalFormat("$#0.00");
double totalPay = 0;
int totalDays;
System.out.println("Please enter the number of days you worked: ");
totalDays = keyboard.nextInt();
while (totalDays <1)
{
System.out.println("You have entered an invalid number of days. ");
System.out.println("Please enter the number of days you worked: ");
totalDays = keyboard.nextInt();
}
for(int counter = 1; counter <= totalDays; counter++)
{
System.out.println("Pay for Day #" + counter + ": " + formatter.format(counter));
}
totalPay = totalPay + counter;
System.out.println("TOTAL PAY FOR " + totalDays + " DAYS: " + formatter.format(totalPay));
}
}
我遇到的问题是: 1)我不确定如何在不增加第一天工资的情况下加倍工资
2)我如何一次打印TOTAL PAY?截至目前,每当我运行我的程序时,它将打印它与工作天数相同的次数。我只需要打印一次。
答案 0 :(得分:1)
这就是你想要做的。我只是在你for
循环中做了一些小改动。把totalPay = totalPay + result
放在循环中。希望这对你有所帮助。
public class Test {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
DecimalFormat formatter = new DecimalFormat("$#0.00");
double totalPay = 0;
double result = 1.00;//for showing per day payment
int totalDays;
System.out.println("Please enter the number of days you worked: ");
totalDays = keyboard.nextInt();
while (totalDays < 1) {
System.out.println("You have entered an invalid number of days. ");
System.out.println("Please enter the number of days you worked: ");
totalDays = keyboard.nextInt();
}
for (int counter = 1; counter <= totalDays; counter++) {
System.out.println("Pay for Day #" + counter + ": " + formatter.format(result));
totalPay = totalPay + result;//for getting total payment
result *= 2;//for doubling payment as number of day increase
}
System.out.println("TOTAL PAY FOR " + totalDays + " DAYS: " + formatter.format(totalPay));
}
}