2016-11-01 3 views
-2

У меня есть метод, который нужно добавить предоставленный банковский счет в массив, который я создал:Добавление значения в массив

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

это проверяется с помощью этого метода:

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"); 
} 

Однако я получаю сообщение об ошибке, в котором затмение не имеет решения для этой линии:

newAccount[counter] += accounts;

+2

Компилятор должен сообщить вам о недостижимом коде ('for' after' return') – Turing85

+0

Не удалось получить код недоступности. Я изменил его на this.newAccount [counter] + = accounts; и теперь я получаю сообщение об ошибке: newAccount не поле. – Stavan

+0

Начните с обучающих программ Java, таких как https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html и https://docs.oracle.com/javase/tutorial/collections/TOC.html –

ответ

0

Прежде всего вам необходимо улучшить качество кода. Переконструируйте свою функцию и структуру данных.

  • В функции addAccount, где вы получали/манипулировали «numAccounts»?
  • В параметре метода используйте List вместо массива 'BankAccount newAccount []'. Используйте как (список учетных записей). Затем вы можете использовать метод accounts.add().
  • Какое определение «учетные записи»?
  • Вам действительно нужно вернуть что-либо из этого метода?
  • после оператора возврата, код не будет выполнен. в качестве последнего оператора переместите оператор 'return'.

Вставьте полный код, чтобы получить представление об общей структуре.

0

Если и просто хотите увидеть, как новое значение может быть добавлен в массив, то здесь ...

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}. 

Теперь, Сказав, что я согласен с @ Turing85 и @ Shafiul.With ваш код выше, вы в конечном итоге получите недоступный код, а также Тип Несовместимые ошибок и да, пожалуйста, перепроектируйте свой код.

+0

, если я хочу инициализировать мой массив до нулевых записей, могу ли я просто поместить значение null для int myArray [] = null? – Stavan

+0

, если вы это сделаете, тогда ваш массив будет указывать на ничего. Но если вы хотите иметь нулевые записи, вам нужно изменить тип данных вашего массива на строку. –

Смежные вопросы