Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    [java] array e inizializzazione

    Ho scritto questo codice

    codice:
    int[] openB, closeB = new int[openBrackets.size()];
                 
                for (int i = 0 ; i < openBrackets.size() ; i++ ){
                    
                    openB[i] = Integer.parseInt(openBrackets.get(i).toString());
                }
    e in compilazione ricevo:
    variable openB might not have been initialized

    allora sono andato a vedere sul sito della sun cosa kakkio ho sbagliato e negli esempi ho trovato:
    codice:
    int[] anArray;	        // declare an array of integers
    
            anArray = new int[10];	// create an array of integers
    
            // assign a value to each array element and print 
            for (int i = 0; i < anArray.length; i++) {
                anArray[i] = i;
            }
    Non riesco a capire la differenza...

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io ti consiglio di utilizzare una dichiarazione separata per ciascuna variabile, altrimenti rischi di incorrere proprio nell'errore che hai commesso:
    codice:
    int[] openB, closeB = new int[openBrackets.size()];
    Questa riga di codice dichiara 2 array, ma inizializza solamente l'ultimo.

    In altri linguaggi, come ad esempio il C, avresti commesso addirittura 2 errori: avresti dichiarato un array di interi (openB) e una variabile intera (closeB), che tentavi di inizializzare come un array.

    Non utilizzare una dichiarazione unica per più variabili se queste sono di tipo strutturato (come gli array), ma usa una dichiarazione separata per ciascuna, così eviti molti errori:
    codice:
    int[] openB = new int[openBrackets.size()];
    int[] closeB = new int[openBrackets.size()];
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613


    Io devo lassà perde, non è il mio mestiere

    Grazie ancora

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 © 2026 vBulletin Solutions, Inc. All rights reserved.