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

    Errore "found int required int[]"???

    Salve a tutti sono nuovo del forum...e anche del linguaggio di programmazione java!!!
    Avrei un piccolo problemino...sto scrivendo un programma che prenda in input una matrice s di interi e li stampi a video...con la particolarità che gli interi che andranno a riempire gli array vengano generati casualmente tramite la funzione "Math.random".
    Ho un problema però...quando compilo mi da il seguente errore...

    Esercizio01.java:12: incompatible types
    found : int
    required: int[]
    matrice_s[a] = (int)(1+Math.random()*9);
    ^
    Esercizio01.java:13: incompatible types
    found : int
    required: int[]
    matrice_s[b] = (int)(1+Math.random()*9);
    ^
    2 errors
    >Exit code: 1

    Vi posto anche il codice che ho scritto...

    public class Esercizio01
    {
    public static void main(String[]args)
    {
    int matrice_s[][];
    matrice_s = new int [10][2];
    int a;
    int b;
    int matrice = 9;
    for(a=0; a<=matrice; a++){
    for(b=0; b<=matrice; b++)
    matrice_s[a] = (int)(1+Math.random()*9);
    matrice_s[b] = (int)(1+Math.random()*9);
    System.out.println(matrice_s[a]);
    System.out.println(matrice_s[b]);
    }
    }
    }

    Qualcuno potrebbe aiutarmi a capire dove sbaglio...?! Grazie anticipatamente a tutti...!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    leggi cosa dice il compilatore

    codice:
    Esercizio01.java:12: incompatible types
    found : int
    required: int[]
    mi sembra molto molto chiaro: passi un intero al posto di un array di interi
    RTFM Read That F*** Manual!!!

  3. #3
    Ho modificato il codice...adesso il compilatore non mi da errore ma quando eseguo il programma non va è segna questo:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    at Esercizio01.main(Esercizio01.java:15)
    >Exit code: 1

    Cosa significa??
    dovrebbe essere qualcosa legata alla lunghezza dell'array...giusto?
    Vi posto il codice:

    codice:
    public class Esercizio01 
    {   
       public static void main(String[]args)   
       {     
         int matrice_s[][];     
         matrice_s = new int [10][10];     
         int a;     
         int b;     
         int righe = 9;     
         int colonne = 9;     
         for(a=0; a<=righe; a++){       
            for(b=0; b<=colonne; b++)       
             matrice_s[a][b] = (int)(1+Math.random()*9);       
             System.out.println(matrice_s[a][b]);     
        }   
       } 
     }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    stessa risposta di poco fa (e tieni conto che queste sono cose stra risolte in rete):
    esci dai limiti, è come se tu hai un array di 10 elementi e accedi all'elemento 11.

    Non possiamo stare noi a correggerti queste cose, assieme al linguaggio impari a capire cosa succede quando hai un'eccezione, visto che gli strumenti java sono molto chiari e non dicono mai una cosa per un'altra
    RTFM Read That F*** Manual!!!

  5. #5
    Ok grazie mille...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da bassman85
    codice:
         for(a=0; a<=righe; a++){       
            for(b=0; b<=colonne; b++)       
             matrice_s[a][b] = (int)(1+Math.random()*9);       
             System.out.println(matrice_s[a][b]);     
        }
    L'errore a runtime è sì dovuto ad un indice errato ma perché è la struttura del codice quotato che non va. Quello che manca sono le { } nel for annidato.

    Il tuo codice sopra il compilatore lo vede come (riformatto e indento bene io):
    codice:
    for(a=0; a<=righe; a++) {
        for(b=0; b<=colonne; b++) {
            matrice_s[a][b] = (int)(1+Math.random()*9);
        }
    
        System.out.println(matrice_s[a][b]);
    }
    Terminato il loop interno, b vale 10 ed è appunto un indice errato quando cerchi di stampare l'elemento in [a][b].

    Racchiudi la stampa nel { } del for annidato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.