2013-05-16 2 views
0

Следующий метод всегда возвращает NULL:Поиск элемента в массиве и возвращает его

public SalesItem findItem(String itemCode){ 

     // to be implemented 
     Cart cart = new Cart(); 
     SalesItem[] item; 
     item = new SalesItem[1]; 
     item[0] = null; 

     for (int i = 0; i < size -1; i++) { 
      if (itemCode.equals(items[i].getItemCode())) { 
      item[0] = items[i]; 
      System.out.println("Item - " + item +" is added to the shopping cart."); 
      cart.addItem(items[i]); 
      } 

      else { 
      item[0] = null; 
      } 
     } 
     return item[0]; 

Кто-нибудь знает, что случилось с моим кодом?

ответ

2

Если последний элемент проверки ваших циклов не соответствует этому элементу, то вы устанавливаете item[0] на нуль.

Затем вы возвращаете item[0].

Таким образом, цикл for не имеет смысла. Вероятно, вы должны вернуть элемент, как он найден.

+0

И как мне это сделать ...? :/ – Kimmm

+0

@ Kimmm внутри, если вы могли бы сделать 'return item [i];' – FDinoff

1

У вас есть item [0] = null , и вы сравниваете itemCode с элементом [0], который является equla равным null, поэтому он всегда возвращает null.

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