Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, έχω φτίαξει έναν πίνακα 5 θέσεων int[] ArrayOutlaws = new int[5]

και τον γεμίζω με την εντολή ArrayOutlaws[kati]+=1; αλλά μου βγάζει error. :shock:

Για να χρησιμοποιήσω το ArrayOutlaws[kati]+=1; πρέπει πρώτα να βάλω 0 σε όλες τις θέσεις του?

Δημοσ.

πριν την εντολή σου γράψε

>System.out.println("kati="+kati);

 

για να δεις την τιμή του kati

 

προφανώς η τιμή του θα είναι εκτός ορίων π.χ. 5

Δημοσ.

Καλησπέρα, έχω φτίαξει έναν πίνακα 5 θέσεων int[] ArrayOutlaws = new int[5]

και τον γεμίζω με την εντολή ArrayOutlaws[kati]+=1; αλλά μου βγάζει error

 

Τι error βγάζει γιατί αυτό δεν φαίνεται λάθος

 

Για να χρησιμοποιήσω το ArrayOutlaws[kati]+=1; πρέπει πρώτα να βάλω 0 σε όλες τις θέσεις του?

 

Όχι, η default value των int είναι πάντα 0

Δημοσ.

Αυτή είναι η μέθοδος με το πρόβλημα και η από κάτω αυτήν που την καλεί.Το γαμότο είναι πως πριν βάλω στο παιχνίδι τους πίνακες(εκεί βγάζε το error) ArraysOutlaws και ArrayNinjas(τα χρειάζομαι για να εμφανίσω στο τέλος κάποια στατιστικα) η άσκηση έτρεχε μια χαρά!

error:Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 39, Size: 38

 

>
   int[] ArrayOutlaws;
   int[] ArrayNinjas;
   public boolean inStation(int station, int numberOfStations, int numberOfWaggons, int wag, boolean checker)
   {
       ArrayOutlaws = new int[numberOfWaggons];
       ArrayNinjas = new int[numberOfWaggons];

       int size=0;
       int outlaws=0;
       int leavers=0;
       boolean check2;
       if(station==numberOfStations)
       {
           check2=false;
           if(checker)
           {
               size=ListWaggon.size();
               for(int i=size-1; i!=-1; i--)
               {
                   if(ListWaggon.get(i).isTicket()==false)
                   {
                           ListWaggon.remove(i);
                           outlaws+=1;
                           ArrayOutlaws[wag-1]+=1;
                   }
               }
           }
           size=ListWaggon.size();
           for(int i=0;i<size;i++)
               {
                   ListWaggon.remove(0);
                   leavers+=1;
                   if(ListWaggon.get(i).isTicket()==false)
                   {
                       ArrayNinjas[wag-1]+=1;
                   }
               }
           System.out.println("To vagoni " +wag +" exei " +ListWaggon.size() +" epivates");
           System.out.println("     paravates: " +outlaws +", katevainoun: " +leavers  +", mpainoun: " +0 +"." );
           System.out.println("     Termatikos stathmos");
       }
       else
       {
           if(station!=1)
           {
               if(checker)
               {
                   size=ListWaggon.size();
                   for(int i=size-1; i!=-1; i--)
                   {
                       if(ListWaggon.get(i).isTicket()==false)
                       {
                           ListWaggon.remove(i);
                           outlaws+=1;
                           ArrayOutlaws[wag-1]+=1;
                       }
                   }

               }
               Random randGen = new Random();
               int randepiv = randGen.nextInt(ListWaggon.size());
               for(int i=0;i<randepiv;i++)
               {
                   ListWaggon.remove(0);
                   leavers+=1;
                   if(ListWaggon.get(i).isTicket()==false)
                   {
                       ArrayNinjas[wag-1]+=1;
                   }
               }
           }
           Random randGen2 = new Random();
           int randepiv2 = randGen2.nextInt(100-ListWaggon.size());
           for(int i=0;i<randepiv2;i++)
           {
               ListWaggon.add(new Passenger());
           }
           Random randGen3 = new Random();
           int randcheck = randGen3.nextInt(10);
           if(randcheck<4)
           {
               check2=true;
           }
           else
           {
               check2=false;
           }
           System.out.println("To vagoni " +wag +" exei " +ListWaggon.size() +" epivates");
           System.out.println("     paravates: " +outlaws +", katevainoun: " +leavers  +", mpainoun: " +randepiv2 +"." );
           if(check2)
           {
               System.out.println("     Tha ginei elegxos eisithriwn.");
           }
           else
           {
               System.out.println("     De tha ginei elegxos eisithriwn.");
           }
        }
       return check2;
   }

 

Η μέθοδος που την καλεί

>
   public void operate(int numberOfWaggons, int numberOfStations)
   {
       boolean check=false,checker=false;
       boolean[] Arraybool =  new boolean[numberOfWaggons];
       for(int i=0;i<numberOfWaggons;i++)
       {
           Arraybool[i]=false;
       }
       for(int i=1;i<=numberOfStations;i++)
       {
           System.out.println("                                   ");
           System.out.println("To treno ftanei sto stathmo " +i);
           for(int j=1;j<=numberOfWaggons;j++)
           {
               checker=Arraybool[j-1];
               check = ArrayTrain[j-1].inStation(i, numberOfStations, numberOfWaggons, j, checker);
               Arraybool[j-1]=check;
               if(check)
               {
                  sumCharge += ArrayTrain[j-1].betweenStations();
               }
           }
       }

   }

Δημοσ.

ένα από τα λάθη είναι εδώ

 

>
   public boolean inStation(int station, int numberOfStations, int numberOfWaggons, int wag, boolean checker)
   {
       ArrayOutlaws = new int[numberOfWaggons];
       ArrayNinjas = new int[numberOfWaggons];

 

μηδενίζεις κάθε φορά τους πίνακες σου αφού τους δημιουργείς ξανά με κάθε κλήση της συνάρτησης σου,

έτσι δεν εξυπηρετούν τον σκοπό για τον οποίο τους έχεις βάλει.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...