Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Semplicemente il numero di valori mi serve per il ciclo for, il ciclo lo ripete n volte a seconda del valore inserito dell'utente.
    Dopo che ho richiesto quanti valori voglia inserire l'utente comincio il ciclo for e gli passo il primo valore di lettura così:

    valore[i] = br.readLine();

    avevo provato anche con += ma poi concatenava tutto, anche se salvava tutti valori senza sostituire i vecchi.
    ?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Ok e quale è il dubbio ora? Non è chiara la mia spiegazione generalizzata che ho fatto nel EDIT?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ok e quale è il dubbio ora? Non è chiara la mia spiegazione generalizzata che ho fatto nel EDIT?
    No, tu sei sempre esaustivo
    Sono un po' confuso su come interagire con la soluzione. L'array list usa il metodo add per aggiungere un valore e dovrei creare una nuova variabile da cui leggere in input.
    Comunque ecco come inserisco i valori:

    codice:
    System.out.print("Quanti valori vuoi inserire?: ");
        try
        {
        max = Integer.parseInt(br.readLine());
        }catch(NumberFormatException e)
        {
        System.err.println("Inserisci un numero!");
        max = Integer.parseInt(br.readLine());
        }
        
        for(int i = 0; i < max; i++)
        {
            System.out.println("Inserisci " + (i+1) + "° valore: ");
            try
            {
            valore[i] = br.readLine();
            }catch(IndexOutOfBoundsException e)
            {
                System.err.println("Non c'è più spazio in memoria!");
            }
        }
    è proprio in valore[i] = br.readLine(); che devo mettere mano giusto? Ho fatto come hai detto e ho stanziato l'array prima ancora di aprire il metodo, dando una capacità di memorizzazione massima di 20 elementi.
    Continuo a non capire però come faccio a salvare tutti i valori precedentemente letti e nuovi.
    ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    No, tu sei sempre esaustivo


    Quote Originariamente inviata da wormd Visualizza il messaggio
    Sono un po' confuso su come interagire con la soluzione.

    è proprio in valore[i] = br.readLine(); che devo mettere mano giusto? Ho fatto come hai detto e ho stanziato l'array prima ancora di aprire il metodo, dando una capacità di memorizzazione massima di 20 elementi.
    Continuo a non capire però come faccio a salvare tutti i valori precedentemente letti e nuovi.
    Innanzitutto bisognerebbe vedere il "design" della tua classe/i. Spererei che, come minimo, tutto quello che stai facendo per interagire con l'utente lo fai nel contesto di una istanza della tua classe, in modo da poter tenere variabili di istanza come appunto per l'array.

    È sufficiente tenere "in vita", per la durata della applicazione, 2 cose:
    - un String[], inizialmente di lunghezza 0 (non nullo).
    - un int che indica il numero "logico" di elementi correnti e che fa anche da indice per il successivo inserimento, inizialmente a 0.

    Poi basta incapsulare la logica di espansione dell'array in un metodo es.

    private void espandiArray(int numeroAggiunti)

    Qui dentro la logica è semplice:
    - istanzi un nuovo array di lunghezza uguale alla dimensione corrente + numeroAggiunti.
    - ricopi i vecchi elementi. Basta un ciclo for o anche arraycopy di System che fa tutto.
    - assegni il nuovo array alla variabile di istanza.

    Il resto (ciclo di input) prosegue senza che debba sapere altro (a parte quel numero "logico" di elementi).
    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.