Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Problemi visibilità variabile

    Buongiorno, avrei bisogno di aiuto per quanto riguarda un piccolo problema riscontrato nella programmazione in java.
    Dopo aver inserito da tastiera i valori, questi ultimi devono essere memorizzati in un array, solo
    che la visibilità della variabile (num) che a me interessa rimane dentro il ciclo.
    Come posso fare?? Grazie
    Riporto una parte del codice:


    codice:
    public class EsameDiDicembre {
        
        public static void main(String[] args) {
             // creo un oggetto Scanner per leggere input da tastiera
              Scanner sc = new Scanner(new InputStreamReader(System.in));
    
    
              String line;
              int num;
    
    
              // ciclo potenzialmente infinito
              while(1 != 0) {
                 System.out.print("Inserire numero: ");
    
    
                 // leggo la riga inserita dall'utente
                 line = sc.nextLine();
    
    
                 // se la riga e' vuota allora smetto di leggere
                 if(line.equals("")) break;
    
    
                 // altrimenti converto quello che e' stato inserito in un numero
                 // PS. qui ci sarebbe da fare anche qualche altro controllo...
                 num = Integer.parseInt(line);
    
    
                 // ripeto all'utente il numero che ha appena inserito
                 System.out.println("Hai inserito " + num);
              }
    
    
              System.out.println("Termino");
              sc.close();
        ;
        
        
        
        }
    Ultima modifica di LeleFT; 13-10-2014 a 13:15 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Quote Originariamente inviata da shooter94 Visualizza il messaggio
    Dopo aver inserito da tastiera i valori, questi ultimi devono essere memorizzati in un array, solo
    che la visibilità della variabile (num) che a me interessa rimane dentro il ciclo.
    Come posso fare??
    Ciao, non ho capito il problema... Cosa vuoi fare?

  3. #3
    Facendo partire il programma, questo chiede all'utente di inserire una serie di numeri.
    Inserisce il primo e preme invio.
    Inserisce il secondo e preme invio.
    e cosi via....
    Alla fine i valori inseriti devo memorizzarli in un array per poi utilizzarli con un algoritmo di ordinamento..
    Come faccio?

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ok, ora è chiaro.
    Dichiari l'array fuori dal ciclo while, mentre dentro al ciclo while leggi i valori e li inserisci nell'array. Questo se vuoi fare tutto dentro al main. Altrimenti puoi scegliere soluzioni diverse, ad esempio avere l'array come variabile di classe sul quale possono agire vari metodi (uno per la lettura, uno per l'ordinamento, ...)

  5. #5
    dichiarando l'array fuori dal ciclo while, devo memorizzare i valori della variabile num. Al posto di num se scrivo il nome dell' array funziona? Dichiaro questo fuori while:

    int[] array;

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Questo è un piccolo esempio, tenendo il tuo codice come base:

    codice:
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Scanner;
    
    
    public class LetturaInArray {
    
    
        public static void main(String[] args) {
            // creo un oggetto Scanner per leggere input da tastiera
            Scanner sc = new Scanner(new InputStreamReader(System.in));
    
    
    
    
            String line;
            int num;
            ArrayList<Integer> array = new ArrayList<>();
    
    
    
    
            // ciclo potenzialmente infinito
            while(1 != 0) {
                System.out.print("Inserire numero: ");
    
    
    
    
                // leggo la riga inserita dall'utente
                line = sc.nextLine();
    
    
    
    
                // se la riga e' vuota allora smetto di leggere
                if(line.equals("")) break;
    
    
    
    
                // altrimenti converto quello che e' stato inserito in un numero
                // PS. qui ci sarebbe da fare anche qualche altro controllo...
                num = Integer.parseInt(line);
    
    
                /* memorizzo il numero */
                array.add(num);
    
    
    
    
                // ripeto all'utente il numero che ha appena inserito
                System.out.println("Hai inserito " + num);
            }
    
    
            /* stampo la lista di tutti i numeri memorizzati */
            for(int n : array) {
                System.out.println(n);
            }
    
    
    
    
            System.out.println("Termino");
            sc.close();
    
    
        }
    }


    Comunque ti consiglio di fare come dicevo prima: dichiarare l'array (o la lista, nel mio caso) come variabile di classe e poi andare ad operare su di esso con vari metodi.

  7. #7
    Grazie per la bozza di codice. Potresti gentilmente spiegarmi con si procede con il secondo metodo cioè dichiarando l'array potenzialmente infinito?? Grazie, sono alle prime armi

  8. #8
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Quote Originariamente inviata da shooter94 Visualizza il messaggio
    Potresti gentilmente spiegarmi con si procede con il secondo metodo cioè dichiarando l'array potenzialmente infinito?
    Guarda che è quello che ho fatto nel codice che ti ho postato. Una ArrayList è una struttura dati dinamica che si "allarga" o "restringe" a seconda delle esigenze. Per questo l'ho utilizzata: mi sembra adatta al tuo caso, in cui devi leggere un numero di valori che non conosci a priori.

  9. #9
    ah grazie mille. Ma a questo punto quando vado a dichiarare il metodo di ordinamento, come parametro devo mettere il vettore??

    private static void Insertionsort(ArrayList<Integer> arrayNumerico )

  10. #10
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Esatto. Se l'ArrayList viene dichiarata nel main, la puoi poi passare ad un altro metodo. Altrimenti, se dichiari l'ArrayList come variabile di classe, non c'è bisogno di passare nulla, dato che tutti i metodi della classe possono poi "vedere" la lista.

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.