17. marts 2006 - 15:39Der er
10 kommentarer og 1 løsning
Problem med for loop
Hej med jer... Jeg har lidt problem med at få den her til at virke... public void deleteProduct(int id){ System.out.println("asked to delete prod with id="+id); /*start by collecting all the orders*/ orderList = new CTROrders().getOrderList(); //int listSize=0; this.prodId = id; boolean canDelete = true; int i = 0; System.out.println("i="+orderList.length+ " prodid to del="+prodId); /*get productList from each order*/ for(int j = 0; j < orderList.length; j++){ productList = orderList[i].getProducts(); /*go through each productList*/ for(int x = 0; x < productList.length; x++){ if(prodId == productList[x].getProdId()){ System.out.println("id if="+prodId+" id in list="+productList[x]); System.out.println("Cant delete"); canDelete = false; } }//end for i++; }//end for if((canDelete ==true) || (i ==orderList.length)){ try{ st = createStatement(); System.out.println(""); st.executeUpdate(deleteProductSTR(prodId)); System.out.println("del success"); } catch (SQLException e){ System.out.println("sql error:"+e); } }
}
Jeg skal søge igennem et array af ordre som indeholder x antal array af produkter. hvis et id findes ikke i produkt arrayet så må det fjernes fra databasen... Jeg har prøvet nogle forskellige løsninge men kan ikke få det til at virke så "HELP NEEDED"
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
for(int i = 0; i < orderList.length; i++){ productList = orderList[i].getProducts(); /*go through each productList*/ for(int x = 0; x < productList.length; x++){ if(prodId == productList[x].getProdId()){ System.out.println("id if="+prodId+" id in list="+productList[x]); System.out.println("Cant delete"); canDelete = false; } }//end for
og så sletter du din int i = 0; og i++;
du fortæller ikke direkte hvad problemet er.. hvad sker der eller hvad sker der ikke?
problemet er at statementet bliver udført selv om at "cant delete" bliver printet ud det skal kun udføres hvis canDelete er "true" dvs. hvis det findes et produkt med det samme id i en af produktList så skal det være "false" og intet skal slettet fra databasen
if(canDelete ==true)){ samt at jeg skal være færdig med at køre igennem alle productListe i alle orderListe. if((canDelete ==true) || (i ==orderList.length)){
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.