Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Dubbio codice java

  1. #1

    Dubbio codice java

    Qualcuno mi sa spiegare in modo semplice a cosa serve questo metodo?


    codice:
    public static int cerca(int[] vettore, int numero){
    for(int i=0;i<vettore.length;i++)
             if(vettore==numero)
                    return i;
    return -1;

    All'interno del main viene richiamato in questo modo:


    codice:
                   for(int num : numeri)                                                     
    {
                        if(Functions.cerca(estrazioni, num)!=-1)
     count++;
                
                 switch(count)
                 {
                 case 1: msg="estratto semplice"; break;
                 case 2: msg="ambo";break;
                 case 3: msg="terno";break;
                 case 4: msg="quaterna";break;
                 case 5: msg="quintina";break;
                 default: msg="Nessuna vincita";break;
                }

    Grazie!
    Ultima modifica di LeleFT; 30-12-2014 a 12:05 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Mi pare evidente: il metodo ritorna la posizione dell'elemento cercato all'interno dell'array... se questo elemento viene trovato, altrimenti viene restituito -1.

    Lo spiego con altre parole.

    La funzione cerca l'elemento "numero" all'interno dell'array "vettore". Se l'elemento viene trovato, la funzione restituisce la posizione dell'elemento. Se non viene trovato, la funzione restituisce -1.


    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
    Ciao,
    beh per come l'hai scritta tu la funziona "cerca" ritornerà sempre -1
    Semmai dovrai scrivere:
    codice:
    public static int cerca(int[] vettore, int numero){
    for(int i=0;i<vettore.length;i++)
             if(vettore[i]==numero)
                    return i;
    return -1;
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Ciao,
    beh per come l'hai scritta tu la funziona "cerca" ritornerà sempre -1
    Semmai dovrai scrivere:
    codice:
    public static int cerca(int[] vettore, int numero){
    for(int i=0;i<vettore.length;i++)
             if(vettore[i]==numero)
                    return i;
    return -1;
    Ciao.
    Corretto. Non mi ero accorto che mancava l'indicizzazione... ad ogni modo, immagino sia stato un errore di copiatura del codice, altrimenti non compila nemmeno.


    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

  5. #5
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Ciao,
    beh per come l'hai scritta tu la funziona "cerca" ritornerà sempre -1
    Semmai dovrai scrivere:
    codice:
    public static int cerca(int[] vettore, int numero){
    for(int i=0;i<vettore.length;i++)
             if(vettore[i]==numero)
                    return i;
    return -1;
    Ciao.
    E all'interno del main "for(int num : numeri)" significa che assegno a una variabile chiamata "num" il contenuto del vettore "numeri"?
    In teoria la sintassi del ciclo for non dovrebbe essere(i=0;i<n;i++)?Forse sono domande un po' scontate ma sto imparando da poco Java .
    Grazie mille!
    Ultima modifica di eagle87; 30-12-2014 a 15:53

  6. #6
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Mi pare evidente: il metodo ritorna la posizione dell'elemento cercato all'interno dell'array... se questo elemento viene trovato, altrimenti viene restituito -1.

    Lo spiego con altre parole.

    La funzione cerca l'elemento "numero" all'interno dell'array "vettore". Se l'elemento viene trovato, la funzione restituisce la posizione dell'elemento. Se non viene trovato, la funzione restituisce -1.


    Ciao.
    Grazie della risposta..

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Sono due modi diversi per fare la stessa cosa:


    codice:
    int[] numeri = new int[] {1,2,3,4,5};
    
    for (int num : numeri) {
        System.out.println(num);
    }
    
    
    for (int i = 0; i < numeri.length; i++) {
        System.out.println(numeri[i]);
    }
    Il primo è detto "for each" l'altro è il for classico.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Quote Originariamente inviata da eagle87 Visualizza il messaggio
    E all'interno del main "for(int num : numeri)" significa che assegno a una variabile chiamata "num" il contenuto del vettore "numeri"?
    In teoria la sintassi del ciclo for non dovrebbe essere(i=0;i<n;i++)?Forse sono domande un po' scontate ma sto imparando da poco Java .
    Grazie mille!

    Quello è il "nuovo" for-each, introdotto da Java 5, che affianca la normale sintassi del ciclo for.
    Quando non è necessario conoscere la posizione di un elemento, ma si vuole comunque scorrere una collezione (o un array) è possibile usare il for-each.

    Con il for-each, l'array verrà percorso nell'ordine (dal primo all'ultimo elemento) e ciascun elemento dell'array verrà assegnato, ad ogni iterazione, alla variabile "num".

    Questo

    codice:
    for(int num : array) { ... }

    è equivalente a questo:

    codice:
    for(int i=0; i<array.length; i++) {
       int num = array[i];
       ...
    }

    con l'unica differenza che la versione "for-each" usa una variabile in meno (non c'è l'indice).


    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

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