PDA

View Full Version : [JAVA] Perchè Illegal Start Of Expression?


Nukles
13-02-2005, 21:13
Sto impazzendo perchè non capisco cosa abbia tanto da dirmi il compilatore perchè mi dice che alla riga 73, dove comincia il main, c'è una ILLEGAL START OF EXPRESSION...



class Cornice {

public static void inutile() {

int[][] a;
int i;

a = new int[][] { {3, 4, 5, 6, 7}, {4, 5, 7, 8}, {5, 8, 9} };

System.out.println(a[0].length);
System.out.println(a.length);

for (i=0; i<a.length; i++)
System.out.println(a[i].length);
}

/* metodo che, dati due interi, crea un array di array in base ad essi contentente 1 nella prima e nell'ultima riga, oltre che
nella prima e nell'ultima colonna, contenendo nelle parti restanti esclusivamente 0*/

public static int[][] cornice(int n, int m) {

int[][] a; //array cornice
int i,j; //indici di scansione

a = new int[n][m];

/* riempie la prima riga di 1 */
for (i=0; i<a[0].length; i++)
a[0][i] = 1;

/* riempie le righe dalla seconda alla penultima */
for (i=1; i<(a.length-1); i++)
for (j=0; j<a[i].length; i++)

if (j == 0 || j == (a.length-1)) //elemento della riga nella prima colonna o nell'ultima colonna
a[i][j] = 1; //assegna 1 a questo elemento

else a[i][j] = 0; //assegna 0 in tutti gli altri casi

/* riempie l'ultima riga di 1 */

for (i=0; i<a[(a.length-1)].length; i++)
a[a.length-1][i] = 1;

return a;
}

/* metodo che, dato un array bidimensionale a, verifica se a è una cornice e restituisce l'esito di tale verifica*/

public static boolean isCornice(int[][] a) {

boolean cornice; //controllo dell'array di array
int i,j; //indice di scansione dell'array di array

cornice = true; //inizialmente l'array di array è una cornice

/* controlla che l'array di array rispetti le condizioni */
for (i=0; i<a.length; i++) {
for (j = 0; j<a[i].length; i++)

if ( ( i == 0 || i == (a.length-1) ) && a[i][j] != 1 ) //caso in cui un elementi della prima o dell'ultima riga non è 1
cornice = false; //a non è una corice

else if ( ( j == 0 || j == (a.length-1) ) && a[i][j] != 1 ) //caso in cui un elemento della prima o dell'ultima colonna non è 1
cornice = false;

else if ( a[i][j] != 0 ) //caso in cui tutti gli altri elementi non sono 0
cornice = false;

return cornice;
}

public static void main(String[] args) {

System.out.println();

}

}



mi aiutate?

end.is.forever
13-02-2005, 21:24
Il primo che noto è che qui non chiudi la graffa del primo for:

public static boolean isCornice(int[][] a) {

boolean cornice; //controllo dell'array di array
int i,j; //indice di scansione dell'array di array

cornice = true; //inizialmente l'array di array è una cornice

/* controlla che l'array di array rispetti le condizioni */
for (i=0; i<a.length; i++) {
for (j = 0; j<a[i].length; i++)

if ( ( i == 0 || i == (a.length-1) ) && a[i][j] != 1 ) //caso in cui un elementi della prima o dell'ultima riga non è 1
cornice = false; //a non è una corice

else if ( ( j == 0 || j == (a.length-1) ) && a[i][j] != 1 ) //caso in cui un elemento della prima o dell'ultima colonna non è 1
cornice = false;

else if ( a[i][j] != 0 ) //caso in cui tutti gli altri elementi non sono 0
cornice = false;

return cornice;
}

Per fare prima ti consiglio di usare un editor che faccia almeno l'highlight dei blocchi, tipo Eclipse, JCreator, JBuilder... (insomma qualsiasi ide)

Madmind
13-02-2005, 21:40
ho copiato il codice nell'editor che utilizzo e ci sono un paio di parentesi da sistemare, in piu' c'e' anche altro da sistemare...

qui per esempio nel secondo for incrementi ancora i, quando dovresti incrementare j, altrimenti ti da' errore il compilatore
/* controlla che l'array di array rispetti le condizioni */
for (i=0; i<a.length; i++) {
for (j = 0; j<a[i].length; i++)

temo ci sarebbe altro da sistemare perche' non mi sembra che faccia esattamente cio' che vuoi, solo che ora non posso darci una occhiata piu' approfondita...

71104
13-02-2005, 21:47
Originariamente inviato da Madmind
qui per esempio nel secondo for incrementi ancora i, quando dovresti incrementare j, altrimenti ti da' errore il compilatore
No scusa, se uno incrementa i anziché j il codice è ancora legale, anche se non fa quello che ti aspetti; il programma è bacato ma a compilare compila.

Nukles
13-02-2005, 22:57
Ragazzi, grazie, siete davvero mitici! L'errore principale era in quella graffa non chiusa! Mamma mia sto compilatore che casini che fa per dirmi un errore :D

per la correttezza verò domani, coi bravi metodi di test

Grazie ragazzI!