Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema java.lang.ArrayIndexOutBoundsException

    Questo è il codice dell'applicazione:

    codice:
    import java.util.Scanner;
    
    class AppFattura
    {
     public static void main(String argv[])
     {
      Scanner t = new Scanner(System.in);
    
      Fattura[]f = new Fattura[1];
      Prodotto[]prod = new Prodotto[5];
    
      String leggiNumero;
      float tot_prod = 0;
      float tot_spesa_cliente = 0;
      int i,j;
    
      for(j=0;j<f.length;j++)
         {
          f[j] = new Fattura();
          System.out.print("\nNumero Fattura: ");
          leggiNumero = t.nextLine();
          f[j].setNumFat(Integer.valueOf(leggiNumero).intValue());
          System.out.print("\nData Emissione Fattura: ");
          f[j].setData(t.nextLine());
          for(i=0;i<prod.length;i++)
             {
              prod[i] = new Prodotto();
              System.out.print("\nDescrizione Prodotto: ");
              prod[i].setDescrizione(t.nextLine());
              System.out.print("\nPrezzo Unitario Prodotto: ");
              leggiNumero = t.nextLine();
              prod[i].setPrezzoUnitario(Integer.valueOf(leggiNumero).intValue());
              System.out.print("\nQuantita' acquistata: ");
              leggiNumero = t.nextLine();
              prod[i].setQuantita(Integer.valueOf(leggiNumero).intValue());
              }
          }
    
       for(j=0;j<f.length;j++)
          {
           for(i=0;i<prod.length;i++)
              {
               tot_prod = prod[i].getPrezzoUnitario() * prod[i].getQuantita();
    
               tot_spesa_cliente = tot_spesa_cliente + tot_prod;}
           }
    
        System.out.print("\nDati Fattura: ");
        System.out.print("\nNumero Fattuea: "+ f[j].getNumFat());
        System.out.print("\nData Emissione: "+ f[j].getData());
        System.out.print("\nDescrizione Prodotti Acquistati: ");
        for(i=0;i<prod.length;i++)
           {
            System.out.print("\nNome Prodotto: "+ prod[i].getDescrizione());
            System.out.print("\nPrezzo Unitario: "+ prod[i].getPrezzoUnitario());
            System.out.print("\nQuantita' Acquistat: "+ prod[i].getQuantita());
            System.out.print("\nSpesa Totale Singolo Prodotto: "+ tot_prod);}
    
        System.out.print("\nSpesa Totale Dovuta Dal Cliente: "+ tot_spesa_cliente);
    
       }
      }
    Questo è il messaggio dell'errore:
    codice:
    Non capisco il motivo dell'errore. Forse ho usato troppe volte il ciclo for, ma a questo punto dovrebbe indicarmi errore anche l'indice dell'oggetto Prodotto. Non capisco.
    Ho convertito i valori di prezzo unitario e della quantità da Stringa a float e da Stringa a intero perchè mi dava problemi nel buffer sull'input dati.
    Grazie in anticipo per le risposte.

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Perché usi la variabile del for fuori di esso? Il problema è che dopo il for j contiene f.length è quando stai provando ad accederlo è fuori dal indice, quindi ottieni l'exception.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Problema java.lang.ArrayIndexOutBoundsException

    Originariamente inviato da Alligator
    Questo è il messaggio dell'errore:
    .
    E' inutile mostrare l'immagine dell'errore, piuttosto posta lo stack trace dell'eccezione...

    Qual è la riga 49?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4

    Re: Re: Problema java.lang.ArrayIndexOutBoundsException

    Originariamente inviato da Alex'87
    E' inutile mostrare l'immagine dell'errore, piuttosto posta lo stack trace dell'eccezione...

    Qual è la riga 49?
    è vero, scusa ma mi sono dimenticato. La riga 49 è questa:

    codice:
    System.out.print("\nNumero Fattura: "+ f[j].getNumFat());

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    La domanda rimane

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.