我正在使用的程序當前運行成功,但它不執行我的程序的一部分,並且顯示沒有錯誤。我的顯示器()沒有運行或顯示我的println
提示符爲: 「創建聲明購買對象的應用程序並提示用戶購買詳細信息。提示輸入發票號碼時,不要讓用戶繼續操作,直到輸入介於1000和8000之間的數字當您提示輸入銷售金額,不要繼續,直到用戶輸入一個非負數,銷售金額,銷售稅,將文件保存爲CreatePurchase.java.
「
import java.util.Scanner;
public final class CreatePurchase {
static int invoiceNum; // I made these variables static because
static double amount; // it fixed an error I was having with using
// non-static variables in a static field?
double tax = .05;
double totalamount;
public static void main(String[] args) {
Purchase completedPurchase = new Purchase();
Scanner input = new Scanner(System.in);
System.out
.println("Please enter the invoice number! (Must be between 1000 and 8000!)");
invoiceNum = input.nextInt();
System.out
.println("Please enter the amount of the sale! (Must be greater than 0!)");
amount = input.nextDouble();
while (invoiceNum < 1000 || invoiceNum > 8000) {
System.out
.println("The invoice number you entered is invalid, try again!");
}
while (amount < 0) {
System.out.println("The sale amount is invalid, try again!");
}
}
public int getInvoiceNum(int invoiceNum) {
return invoiceNum;
}
public double getAmount(double amount) {
return amount;
}
public double getTotalAmount(double totalAmount) {
return totalAmount;
}
public void setTotalAmount(double tax, double amount) {
double totalAmount = (amount * tax);
}
public void display(int invoiceNum, double amount, double totalAmount) {
System.out.println("Your invoice number is:" + invoiceNum + ".");
System.out.println("Your sale amount is: " + amount + ".");
System.out.println("Your sale amount after tax is: " + totalAmount
+ ".");
}
}
我花了幾個小時試圖數字爲了讓我的顯示方法能夠正常工作,我需要修復這些問題。該程序運行成功,並沒有錯誤,所以我不知道甚至試圖修復。 (對不起,如果我的代碼或問題沒有意義。)
除了上面提到的直接問題,潛伏在你的代碼中有幾個危險的條件。再看一看 - 如果你輸入負值會發生什麼?嘗試,如果你覺得大膽。編譯器抱怨「static不能訪問非靜態變量」的原因是因爲教授可能希望你創建一個'Purchase'對象(再次讀取問題語句!),並修改其中的值(例如,通過'completedPurchase.tax = .2')。一般來說,應該避免可變的'static'變量。在您完成這項工作後,請繼續閱讀[codereview.se]瞭解更多信息。 –
非常感謝大家回覆,你們都非常樂於助人,感謝你們的時間和耐心! – yuki