2016-11-01 32 views
-2

Ich habe eine Methode, die das bereitgestellte Bankkonto zu einem Array hinzufügen muss, die ich geschaffen habe:Hinzufügen eines Wertes zu einem Array

public boolean addAccount (BankAccount newAccount[]) { 
     if (numAccounts == 0) { 
      return false; 
     } 
     else { 
      return true; 
      for(int counter=0; counter<newAccount.length; counter++) 
       newAccount[counter] += accounts; 
     } 
    } 

es durch dieses Verfahren getestet wird:

public static boolean test5() { 
    System.out.println("Test5: add an account to a customer."); 
    BankAccount b = new BankAccount(); 
    Customer c1 = new Customer("Alice", "Smith"); 
    customerCounter ++; 
    if (!c1.addAccount(b)) 
     return false; 

    return c1.toString().equals("Alice Smith, " + c1.getCustomerID() + "\n" + b.toString() + "\n"); 
} 

ich erhalte eine Fehlermeldung jedoch welche eclipse haben keine Lösung für in dieser Zeile:

newAccount[counter] += accounts;

+2

Der Compiler sollte Sie über nicht erreichbaren Code warnen ('for' nach' return') – Turing85

+0

Es wurde kein Fehler mit nicht erreichbarem Code erhalten. Ich habe es auf this.newAccount [counter] + = accounts; und jetzt bekomme ich eine Fehlermeldung, dass newAccount kein Feld ist. – Stavan

+0

Beginnen Sie mit Java-Lernprogrammen wie https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html und https://docs.oracle.com/javase/tutorial/collections/TOC.html –

Antwort

0

Zunächst müssen Sie die Codequalität verbessern. Gestalten Sie Ihre Funktion und Datenstruktur neu.

  • In der AddAccount-Funktion, wo haben Sie 'numAccounts' abgeleitet/manipuliert?
  • Verwenden Sie im Methodenparameter List statt Array 'BankAccount newAccount []'. Verwenden Sie Like (Konten auflisten). Dann können Sie die Methode accounts.add() verwenden.
  • Was ist die Definition von "Konten"?
  • Müssen Sie wirklich etwas von dieser Methode zurückgeben?
  • Nach der Return-Anweisung wird kein Code ausgeführt. Verschieben Sie 'return' als letzte Anweisung.

Fügen Sie den vollständigen Code ein, um eine Vorstellung über die Gesamtstruktur zu erhalten.

0

Wenn u wollen nur sehen, wie ein neuer Wert in einem Array hinzugefügt werden können, dann ist es hier ...

int myArray[]={10,20,30}; 
    int newNumber=200; //new value to be added 

    /*Size of an array doesn't change once it is initialized,so a new Array must be 
     created (with new Size)to add new values.*/ 
    int newArray[]=new int[myArray.length+1]; 

    //The newArray will have {0,0,0,0}; 

    // Now copy all the data from previous array to new array. 
    for(int i=0;i<myArray.length;i++) 
     newArray[i]=myArray[i]; 

    //Now the content of newArray is {10,20,30,0} 

    newArray[newArray.length-1]=newNumber; 

    //Now the final content of newArray is {10,20,30,200}. 

nun gesagt haben, dass ich stimme mit @ Turing85 und @ Shafiul.With Ihren obigen Code erhalten Sie schließlich unerreichbaren Code und auch Typ Inkompatible Fehler und ja, bitte redesign Ihren Code.

+0

Wenn ich mein Array auf null Einträge initialisieren möchte, kann ich einfach null für int myArray [] = null setzen? – Stavan

+0

Wenn Sie das tun, dann zeigt Ihr Array auf nichts. Aber wenn Sie Null-Einträge wollen, müssen Sie den Datentyp Ihres Arrays in String ändern. –

Verwandte Themen