2016-04-21 13 views
0

Es ist ein bisschen zu lesen, aber ich muss die Benutzereingabe wiederverwenden, gibt es eine Methode, die ich verwenden kann, um die Dateneingabe durch den Benutzer zu manipulieren.Recall Verwendung Eingabe zur Durchführung bestimmter Aufgaben

Auch aus irgendeinem Grund, wenn ich die Summe am Ende ausgibt gibt es mir eine kumulierte Summe für jeden Eintrag, ich brauche nur die Summe. diese

import java.util.*; 

public class Account { 
    String Name = NewCamper.getCamperName(); 
    private static double balance; 

    Account(){ 
     balance = 0.0; 
    } 

    Account(String aFname, String aLname){ 
     aFname = NewCamper.first; 
     aLname = NewCamper.last; 
    } 

    public void deposit(double amountDep){ 
     balance=balance+amountDep; 
    } 

    private double oldBalance(){ 
     return(Account.balance); 
    } 

    private double newBalance(double total){ 
     return(balance-total); 

    } 

    public static void main(String args[]){ 
     do{ 
      System.out.println("Credit Camper Account? (yes/no)"); 

      Scanner q =new Scanner(System.in); 
      String uq = q.nextLine(); 

      if (uq.equalsIgnoreCase("yes")){ 
       System.out.println("How much to credit?"); 
       double c = q.nextDouble(); 
       Account camp1 = new Account(); 
       camp1.deposit(c); 

       System.out.println("Camper Credit: " + c); 
      } 
      else if(uq.equalsIgnoreCase("no")){ 
      System.out.println(Account.balance);  
      } 
      else{ 
       System.out.println("Invalid Response"); 
       continue; 
      } 
      break; 
     }while(true); 

     List<String> transactions=new ArrayList<String>(); 
     List<Double> amount=new ArrayList<>(); 

     do{ 
      System.out.println("Enter a Transaction: "); 
      Scanner tInput =new Scanner(System.in); 
      Scanner dInput =new Scanner(System.in);  
      String a =tInput.nextLine(); 

      transactions.add(a); 
      System.out.println("Enter purchase amount: "); 

      double b =dInput.nextDouble(); 

      amount.add(b); 
      System.out.println("Do you have new record ?(yes/no)"); 
      String answer= tInput.nextLine(); 

      if(answer.equalsIgnoreCase("Yes")){ 
       continue; 
      }  
      break; 
     }while(true); 
     for (int i = 0; i < transactions.size(); i++) { 
     System.out.println(transactions.get(i)); 
     } 
     System.out.println(transactions+" (£)"+amount); 

     System.out.println("Input Camper First Name: "); 
     Scanner afn = new Scanner(System.in); 
     String af = afn.nextLine(); 

     System.out.println("Input Camper Surname: "); 
     Scanner aln = new Scanner(System.in); 
     String al = afn.nextLine(); 

     NewCamper.first = af; 
     NewCamper.last = al; 
     System.out.println(af+" "+al+" 's transactions:"+transactions); 
     System.out.println(af+" "+al+" 's purchase amounts:"+amount); 


     double total=0.0d; 
     for(int counter = 0; counter<amount.size(); counter++){ 
      total+=amount.get(counter); 
      System.out.println("Total Price: £"+ total); 
     } 
    } 
} 
+0

"Ich möchte Benutzereingaben wiederverwenden" Meinst du es in einer Variablen speichern? – SJuan76

+0

Was ist der Unterschied zwischen der Summe und der akkumulierten Summe? – Mark

+0

@Mark die Summe ist nur die Summe aller Einträge, das Ergebnis, das ich bekomme, ist Array 0, dann Array 0 + 1, dann Array 0 + 1 + 2 .... usw. – Todeh2

Antwort

0

Wechsel:

double total=0.0d; 
for(int counter = 0; counter<amount.size(); counter++){ 
    total+=amount.get(counter); 
    System.out.println("Total Price: £"+ total); 
} 

zu:

double total=0.0d; 
for(int counter = 0; counter<amount.size(); counter++){ 
    total+=amount.get(counter); 
} 
System.out.println("Total Price: £"+ total); 

Sollte nicht überraschend, dass eine Ausgabe-Anweisung in einer Schleife setzen die Ausgabe mehr als eine Zeile neigt.

Verwandte Themen