Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Problema easy con Java!

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Problema easy con Java!

Postdi <BIG> » 21/10/11 21:12

ciao ragazzi allora sto cercando di correggere questo semplice problema java per un mio amico, allora deve inserire i numeri all'interno di un array semplice e contare quanti numeri sono inseriti dall'utente; con il numero 0 termina il ciclo. Il problema è che quando esce dalla funzione il valore "i" non rimane del valore che dovrebbe essere dopo il return e quando lo vado ad utilizzare per sapere quanti valori sono stati inseriti mi da il valore che avevo inizializzato nel main (se non lo faccio mi chiede di farlo); ovvero 0.
Codice: Seleziona tutto
int num[]= new int[30];
       int n=0,i=0,scelta;
        CARICA (num, n);
       do
       {          
          System.out.println("\n\t Scegli un'opzione fra le seguenti: ");
          System.out.println("\n\t Digita 1 per verificare la presenza di un numero");
          System.out.println("\n\t Digita 2 per vedere quante volte è presente un numero");
          System.out.println("\n\t Digita 3 per fare la media");
          System.out.println("\n\t Digita 4 per trovare il valore minimo");
          System.out.println("\n\t Digita 5 per trovare il valore massimo");
          System.out.println("\n\t Digita 6 per sapere quanti numeri hai immesso");
          scelta=pc.leggiInt();
          
          switch(scelta)
          {
             
             case 1:
                RICERCA (num,n);
                break;
                
             case 2:                
                CONTARICERCA (num,n);
                break;
                
             case 3:
                MEDIA (num,n);
                break;
                
             case 4:
                MINIMO (num,n);
                break;
                
             case 5:
                MASSIMO (num,n);
                break;
             case 6:
                System.out.println("hai immesso "+i+" numeri");
                break;
      
          }
             
       }while (scelta!=0);


questo invece è il codice della funzione di caricamento dell'array:
Codice: Seleziona tutto
public static int CARICA (int num [], int n)
    {
      Input pc=new Input();
      int i=0;
      for(i=0;i<30;i++)
         {
             System.out.println("Carica il "+(i+1)+"° numero: ");
           num[i]=pc.leggiInt();
         if(num[i]==0)
            break;
         }
         System.out.println("il valore di i è:"+i);
     return i;

    }    

ho messo qualche system.out per verificare il valore di i dentro e fuori la funzione; dentro è il n° di valori inseriti, fuori inveee è zero.
P.s lasciate stare " Input pc=new Input();" che non so perchè la loro prof non gli faccia usare Scan.

Aiutatemi se riuscite, Grazie!!
<BIG>
Utente Junior
 
Post: 24
Iscritto il: 08/08/11 14:17

Sponsor
 

Re: Problema easy con Java!

Postdi valeriot90 » 24/10/11 18:27

In java i parametri vengono sempre passati per valore, quindi quando invochi la funzione viene creata una copia di i che viene cancellata a fine esecuzione.
Dichiara la i statica in posizione "globale" nella classe.
Prima del for ridichiari una variabile int i!!!!!!!!

Codice: Seleziona tutto
class Ex{
static int i;
public static void main(String[] args){
int[] num= new int[30];
      int n=0,scelta;
      CARICA (num, n);

   System.out.println("il valore di i è:"+i);}

public static void CARICA (int[] num, int n)
   {
     //Input pc=new Input();
   
     for(i=0;i<30;i++)
        {
            System.out.println("Carica il "+(i+1)+"° numero: ");
          num[i]=Console.leggiIntero();
         if(num[i]==0)
            break;
        }
        System.out.println("il valore di i è:"+i);
         }
valeriot90
Utente Senior
 
Post: 477
Iscritto il: 08/05/09 20:19
Località: localhost 127.0.0.1

Re: Problema easy con Java!

Postdi <BIG> » 24/10/11 19:11

ho già risolto cmq grazie della risposta valeriot90!
<BIG>
Utente Junior
 
Post: 24
Iscritto il: 08/08/11 14:17


Torna a Programmazione


Topic correlati a "Problema easy con Java!":

Problema Windows 10
Autore: asso1998
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti