Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Ricorsione Java

  1. #1

    Ricorsione Java

    Buonasera

    mi stavo esercitando sulla ricorsione cercando di ricordare tutti i passaggi.
    Ma mi sa che sbaglio qualcosa.

    in questo semplice metodo cerco di controllare se in un vettore ci sono o meno tutti numeri 5 :

    codice:
    public boolean rvett(int v[], int i){
         
      boolean tf=true;
    
      if(i == x)   // x è la dimensione massima del vettore v 
       return tf;   
      
      if(v[i] != 5 ){
       tf=false;   
       return tf;   
      }
       
      return rvett(v,i++);
       
    }
    Eseguendolo mi entra in un loop infinito..

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Va in loop infinito perché ogni volta che chiami rvett i vale 0.

    Vedi la differenza tra i++ e ++i: nel primo caso prima viene preso il valore di i e poi fatto il +1, nel secondo caso invece prima fai +1 e poi leggi i. Comunque nel tuo caso basta un i + 1


    tf è una variabile inutile.
    x non ti serve, hai già v.

    codice:
        public static boolean rvett(int[] array, int currentIndex) {
            if (currentIndex == array.length) {
                return true;
            }
    
            if (array[currentIndex] != 5) {
                return false;
            }
    
            return rvett(array, currentIndex + 1);
        }
    Ultima modifica di Alex'87; 28-02-2014 a 18:27
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Grazie. Effettivamente avevo scritto molte cose inutili.

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.