2013-10-09 6 views
7

Ich arbeite an einem Programm zur Simulation von Banktransaktionen. Ich muss den Benutzer fragen, ob sie einzahlen, abheben oder übertragen möchten.Bankkonto Programm

Wenn ich einen bestimmten Betrag (zum Beispiel 1000) einzahle, heißt es, dass mein Guthaben 1000 ist. Dann frage ich nach einer Zahl wie 400, die besagt, dass mein Guthaben -400 ist. Nach allem, was ich dachte, vielleicht muss ich meine Balance überprüfen und dann wird es mir, die richtige Balance geben, was 600 sein sollte, aber sagt, es 0. Zum Beispiel finden Sie in diesem Transkript:

screen capture of output

Ich war Denken, weil ich in meinem Code (siehe unten) das Gleichgewicht = 0 gemacht habe, aber wenn ich das = 0 wegnehme und versuche, das Programm auszuführen, sagt es, dass es initialisiert werden muss.

Ich bin fest und ich möchte es herausfinden. Bitte poste den gesamten korrigierten Code nicht. Ich möchte es selbst reparieren und lernen!

import java.util.Scanner; 

public class BankTransactions { 


    public static void main(String[] args) { 

     Scanner scan = new Scanner(System.in); 
     int num; 

     do { 

      double balance = 0; 
      double amount; 

      System.out.println("Type Number"); 
      System.out.println("1. Deposit"); 
      System.out.println("2. Withdrawal"); 
      System.out.println("3. Balance"); 
      System.out.println("4. Exit"); 
      num = scan.nextInt(); 

      if (num == 1) { 
       System.out.println("Enter amount to deposit: "); 
       amount = scan.nextDouble(); 

       // Add the amount to the balance 
       balance += amount; 
       System.out.println("Your balance is"); 
       System.out.println(balance); 


      } else if (num == 2) { 

       System.out.println("Enter amount to withdrawal: "); 
       amount = scan.nextDouble(); 

       // Remove the amount from the balance 
       balance -= amount; 
       System.out.println("Your balance is"); 
       System.out.println(balance); 

      } else if (num == 3) { 


       System.out.println("Your Balance"); 
       System.out.println(balance); 

      } 



     } while (num != 4); 

     System.out.println("Good Bye!"); 

    } 
} 
+8

Niemals Punkttypen Floating-Währung darstellen: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent - –

Antwort

10

Jedes Mal, wenn der do {...}, während {...} ausgeführt wird, Sie Gleichgewicht setzen = 0. Sie sollten es aus der Schleife nehmen.

+1

+1 schlag mich dazu – sameday

+0

Danke für die schnelle Hilfe! Ich wusste, es wäre ein kleiner Fehler – Morgan

3

Sie initialisieren Balance auf 0 innerhalb der Schleife, so dass es jedes Mal auf Null zurückgesetzt wird.

Verschieben Sie den Zeilenausgleich = 0 über die While-Schleife.

3

Jedes Mal, wenn Sie die Schleife ausführen, setzen Sie balance auf 0. Bewegen Sie dies außerhalb Ihrer do Schleife:

double balance = 0; 
double amount; 
do { 
    /* code */ 
} while(num != 4); 
Verwandte Themen