亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

私有整數變量更新一次后不再更新(Java)

私有整數變量更新一次后不再更新(Java)

米琪卡哇伊 2023-09-20 17:06:19
我正在編寫一個程序,用戶可以輸入一個金額(作為銷售),輸入他們是否想用現金或卡支付,然后詢問他們是否想輸入另一個金額(只是為了練習 Java 編程)。每當我輸入金額并選擇現金時,它應該告訴我到目前為止已記錄的現金銷售數量。但是,每當我在添加第一個金額后添加另一個金額時,現金銷售計數仍然保持不變 (1)。此外,每當用戶不再希望輸入任何更多交易時,也應顯示現金/卡交易的總額。另一個問題是現金總量不會累加,只顯示最后輸入的值。任何解決這些問題的幫助將不勝感激。這是兩個類的代碼:SalesRegister.javapackage Week2;public class SalesRegister {    private int numCashSales;    private double valueCashSales;    private int numCardSales;    private double valueCardSales;    private String transactions;    public SalesRegister() {        this.numCashSales = 0;        this.valueCashSales = 0.0;        this.numCardSales = 0;        this.valueCardSales = 0.0;        this.transactions = "";    }    public int getNumCashSales() {        return this.numCashSales;    }    private void addTransaction(boolean isCash, double amount) {        if (isCash) {            transactions += "CASH SALE\t";        } else {            transactions += "CARD SALE\t";        }        transactions += amount + "\n";    }    public void cashSale(double saleValue) {        if (saleValue > 0.0) {            System.out.println("Cash sale recorded.");            valueCashSales += saleValue;            numCashSales++;            System.out.println(numCashSales);            addTransaction(true, saleValue);        }    }    public void cardSale(double saleValue) {        if (saleValue > 0.0) {            numCardSales++;            valueCardSales += saleValue;            addTransaction(false, saleValue);        }    }    public String getTransactions() {        String result = "";        result += "Cash Sales: " + numCashSales + " Total: " + valueCashSales + "\n";        result += "Card Sales: " + numCardSales + " Total: " + valueCardSales + "\n";        result += "Transaction List \n";        result += "+--------------+ \n";        result += transactions + "\n";        return result;    }}最后,這是控制臺的輸出窗口:
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

SalesRegister您將在循環的每次迭代中創建一個新對象,從而重置存儲的值。

您需要將構造函數移到 do-while-loop 之前,即


Scanner in = new Scanner(System.in);

SalesRegister register = new SalesRegister();

i=0;

do {

    i=0;

...


查看完整回答
反對 回復 2023-09-20
  • 1 回答
  • 0 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號