Eccezione nel command

di il
8 risposte

Eccezione nel command

Ragazzi mi esce questa eccezione all'esecuzione di questo codice
ArrayIndexOutOfBoundsException :3
 public static void main (String [] args) {
     int [] stack = {10,20,30};
     int size = 3;
     int idx = 0;
     while (idx < size) {
        idx++;
     }   
     System.out.print("The Top Element: " + stack [idx]);
  }

8 Risposte

  • Re: Eccezione nel command

    maracaibo25 ha scritto:


    Ragazzi mi esce questa eccezione all'esecuzione di questo codice
    ArrayIndexOutOfBoundsException :3
    Beh, è abbastanza comprensibile:

    0 < 3 è true, incrementa idx a 1
    1 < 3 è true, incrementa idx a 2
    2 < 3 è true, incrementa idx a 3
    3 < 3 è false, esce dal while
    poi fa stack[idx] cioè stack[3] che è ovviamente "fuori" dall'array.
  • Re: Eccezione nel command

    andbin ha scritto:


    maracaibo25 ha scritto:


    Ragazzi mi esce questa eccezione all'esecuzione di questo codice
    ArrayIndexOutOfBoundsException :3
    Beh, è abbastanza comprensibile:

    0 < 3 è true, incrementa idx a 1
    1 < 3 è true, incrementa idx a 2
    2 < 3 è true, incrementa idx a 3
    3 < 3 è false, esce dal while
    poi fa stack[idx] cioè stack[3] che è ovviamente "fuori" dall'array.
    L'esercizio chiede di far stampare "The Top Element 30", allora ho pensato ad un do-while invece del while
  • Re: Eccezione nel command

    maracaibo25 ha scritto:


    "The Top Element 30"
    Scusa ma che vuol dire esattamente, in generale?
    L'ultimo elemento? (basta indirizzare il array.length-1)
    L'elemento di valore maggiore?
  • Re: Eccezione nel command

    maracaibo25 ha scritto:


    ho pensato ad un do-while invece del while
    Prova questo
    
    do{
      idx--;
    }while(idx != size - 1);
    
  • Re: Eccezione nel command

    Weierstrass ha scritto:


    maracaibo25 ha scritto:


    ho pensato ad un do-while invece del while
    Prova questo
    
    do{
      idx--;
    }while(idx != size - 1);
    
    è un codice del simulatore d'esame che chiedeva di far stampare "The Top 30" e mi dava 4 frammenti di codice da inserire qua
    public static void main (String [] args) {
         int [] stack = {10,20,30};
         int size = 3;
         int idx = 0;
         ...
         System.out.print("The Top Element: " + stack [idx]);
      }
    e uno solo dei 4 è giusto,io ho pensato fosse giusto questo ma mi dava errore
    while (idx < size) {
             idx ++; }
    invece il frammento corretto è questo
    do {
            idx++;
         } while (idx< size -1);
  • Re: Eccezione nel command

    andbin ha scritto:


    maracaibo25 ha scritto:


    "The Top Element 30"
    Scusa ma che vuol dire esattamente, in generale?
    L'ultimo elemento? (basta indirizzare il array.length-1)
    L'elemento di valore maggiore?
    scusami se sono poco chiaro andbin
  • Re: Eccezione nel command

    maracaibo25 ha scritto:


    Weierstrass ha scritto:


    maracaibo25 ha scritto:


    ho pensato ad un do-while invece del while
    Prova questo
    
    do{
      idx--;
    }while(idx != size - 1);
    
    è un codice del simulatore d'esame che chiedeva di far stampare "The Top 30" e mi dava 4 frammenti di codice da inserire qua
    public static void main (String [] args) {
         int [] stack = {10,20,30};
         int size = 3;
         int idx = 0;
         ...
         System.out.print("The Top Element: " + stack [idx]);
      }
    e uno solo dei 4 è giusto,io ho pensato fosse giusto questo ma mi dava errore
    while (idx < size) {
             idx ++; }
    invece il frammento corretto è questo
    do {
            idx++;
         } while (idx< size -1);
    Allora la frase corretta in italiano è "ho pensato a questo do-while tra queste 4 risposte a crocette proposte", non "ho pensato a un do-while", altrimenti van bene pure le soluzioni balorde come quella che ti ho proposto
  • Re: Eccezione nel command

    Weierstrass ha scritto:


    maracaibo25 ha scritto:


    Weierstrass ha scritto:




    Prova questo
    
    do{
      idx--;
    }while(idx != size - 1);
    
    è un codice del simulatore d'esame che chiedeva di far stampare "The Top 30" e mi dava 4 frammenti di codice da inserire qua
    public static void main (String [] args) {
         int [] stack = {10,20,30};
         int size = 3;
         int idx = 0;
         ...
         System.out.print("The Top Element: " + stack [idx]);
      }
    e uno solo dei 4 è giusto,io ho pensato fosse giusto questo ma mi dava errore
    while (idx < size) {
             idx ++; }
    invece il frammento corretto è questo
    do {
            idx++;
         } while (idx< size -1);
    Allora la frase corretta in italiano è "ho pensato a questo do-while tra queste 4 risposte a crocette proposte", non "ho pensato a un do-while", altrimenti van bene pure le soluzioni balorde come quella che ti ho proposto
    Si mi sono espresso male scusami hai ragione
Devi accedere o registrarti per scrivere nel forum
8 risposte