Avatar billede sonurpals Nybegynder
17. marts 2006 - 15:39 Der 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"
Avatar billede kalp Novice
17. marts 2006 - 16:21 #1
første ændring kunne i hvertfald være denne.. 

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?
Avatar billede sonurpals Nybegynder
17. marts 2006 - 16:39 #2
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
Avatar billede kalp Novice
17. marts 2006 - 16:43 #3
if(canDelete ==true)){
Avatar billede kalp Novice
17. marts 2006 - 16:45 #4
|| (i ==orderList.length)){

hvis du har dette med skriver du jo

ELLER hvis i er = størrelsen på orderList.

og hvis jeg ikke tager helt fejl så vil i altid være det.
Avatar billede sonurpals Nybegynder
17. marts 2006 - 16:46 #5
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)){
Avatar billede sonurpals Nybegynder
17. marts 2006 - 16:47 #6
nå.. selvfølgelig...jeg prøver det lige med &&.. dummefejl
Avatar billede kalp Novice
17. marts 2006 - 16:48 #7
Du er jo ude af løkken som kører din orderliste igennem... så hvorfor tjekke på det?
du ved den har kørt den igennem
Avatar billede sonurpals Nybegynder
17. marts 2006 - 16:50 #8
Tusind tak ... det ser ud for at virke nu....
:-)
Avatar billede kalp Novice
17. marts 2006 - 16:51 #9
ingen årsag:)

blev det med && eller helt uden?
Avatar billede sonurpals Nybegynder
17. marts 2006 - 16:53 #10
med && så virkede det... en dum fejl hehe...
Avatar billede kalp Novice
17. marts 2006 - 16:54 #11
perfekt:)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester