Avatar billede madseksperten Nybegynder
09. november 2011 - 15:38 Der er 8 kommentarer og
2 løsninger

lokal variabler

Hejsa.

Jeg sidder og bøvler lidt med et spørgsmål:

"Add a new method, emptyMachine, that is designed to simulate emptying the machine of money. It should both return the value in total and reset the total to be zero"

Her er hele min kode som virker som den skal:

public class TicketMachine
{
    // The price of a ticket from this machine.
    private int price;
    // The amount of money entered by a customer so far.
    private int balance;
    // The total amount of money collected by this machine.
    private int total;

    /**
    * Create a machine that issues tickets of the given price.
    */
    public TicketMachine(int ticketCost)
    {
        price = ticketCost;
        balance = 0;
        total = 0;
    }

    /**
    * @Return The price of a ticket.
    */
    public int getPrice()
    {
        return price;
    }

    /**
    * Return The amount of money already inserted for the
    * next ticket.
    */
    public int getBalance()
    {
        return balance;
    }

    /**
    * Receive an amount of money in cents from a customer.
    * Check that the amount is sensible.
    */
    public void insertMoney(int amount)
    {
        if(amount > 0) {
            balance = balance + amount;
        }
        else {
            System.out.println("Use a positive amount: " +
                              amount);
        }
    }

    /**
    * Print a ticket if enough money has been inserted, and
    * reduce the current balance by the ticket price. Print
    * an error message if more money is required.
    */
    public void printTicket()
    {
        if(balance >= price) {
            // Simulate the printing of a ticket.
            System.out.println("##################");
            System.out.println("# The BlueJ Line");
            System.out.println("# Ticket");
            System.out.println("# " + price + " cents.");
            System.out.println("##################");
            System.out.println();

            // Update the total collected with the price.
            total = total + price;
            // Reduce the balance by the prince.
            balance = balance - price;
        }
        else {
            System.out.println("You must insert at least: " +
                              (price - balance) + " more cents.");
                   
        }
    }

    /**
    * Return the money in the balance.
    * The balance is cleared.
    */
    public int refundBalance()
    {
        int amountToRefund;
        amountToRefund = balance;
        balance = 0;
        return amountToRefund;
    }


Nu kommer så hvor jeg skal lave spørgsmålet. Oprindeligt havde jeg skrevet:

public int emptyMachine()
    {
        return total;
        total = 0;
    }

men det virker ikke.
Kan i evt hjælpe mig?

Mvh Mads
Avatar billede madseksperten Nybegynder
09. november 2011 - 15:39 #1
hhhmmm er det bare:

public int emptyMachine()
    {
        total = 0;
        return total;
    }

istedet for?

Mvh Mads
Avatar billede arne_v Ekspert
09. november 2011 - 15:41 #2
Den vil jo altid returnere nul.

:-)

Du skal nok gemme vaerdien i en lokal variabel, saette total til nul og saa returnere den gemte vaerdi.
Avatar billede madseksperten Nybegynder
09. november 2011 - 16:27 #3
Hej igen Arne :-)

hvad så med denne her:

public int emptyMachine()
    {
        int total;
        total = balance;
        balance = 0;
        return total;
    }
Avatar billede arne_v Ekspert
09. november 2011 - 16:34 #4
hvis balance er et felt: ja
Avatar billede madseksperten Nybegynder
09. november 2011 - 16:46 #5
hhm Det tror jeg nok den er?

http://imageshack.us/f/715/nytbillede3y.png/
Avatar billede arne_v Ekspert
09. november 2011 - 21:37 #6
med en getBalance metode saa er der nok et felt balance
Avatar billede JensPeterSvensson Nybegynder
09. november 2011 - 21:47 #7
public int emptyMachine()
    {
        int temp;
        temp = total;
        total = 0;
        return temp;
    }
Avatar billede madseksperten Nybegynder
10. november 2011 - 16:48 #8
ok takker for hjælpen, ligger i et svar?

Mvh Mads
Avatar billede arne_v Ekspert
10. november 2011 - 16:51 #9
svar
Avatar billede JensPeterSvensson Nybegynder
11. november 2011 - 07:49 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester