Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Java] metodo che non restituisce il controllo al chiamante

    ciao ragazzi sono nuovo del linguaggio e vengo dal C++..
    devo creare un semplice metodo che restituisca un intero , ma quando vado a compilare
    mi da l'errore "error return missing statement"




    codice:
    public class Prova1 {
    
    private String  [] nome ;
    
    
    
    public Prova1 (int quantita)
    {
    
    nome = new String [quantita] ;
    
    }
    
    
    
    
            public int add (String appuntamento)
    	{
                
    		
    
                    int pos ;
    
                     for ( int i = 0 ; i < nome.length ; i++)
    
                  {
                     nome[i] = appuntamento ;
                     pos = i ;
                     return pos ; 
                 
    
                  } 
        
                  
    	
    	}
    ho provato a impostare la variabile pos dentro il for con un intero a caso , e a restituire il controllo dopo

    codice:
           public int add (String appuntamento)
    	{
                
    		
    
                    int pos ;
    
                     for ( int i = 0 ; i < nome.length ; i++)
    
                  {
                     nome[i] = appuntamento ;
                     pos = 10 ;// valore casuale
                    
                 
    
                  } 
        
                   return pos ; 
    	
    	}
    e mi da l'errore " pos might have been initialized"

    qualcuno può aiutarmi?

    grazie mille
    se non rispondo ai Pvt mandatemi una mail

  2. #2

    Re: [Java] metodo che non restituisce il controllo al chiamante

    Originariamente inviato da toni00c
    e mi da l'errore " pos might have been initialized"
    Devi inizializzare pos.

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [Java] metodo che non restituisce il controllo al chiamante

    Originariamente inviato da toni00c
    e mi da l'errore " pos might have been initialized"

    qualcuno può aiutarmi?
    Basta leggere l'errore: "la variabile pos non è inizializzata". Ergo, inizializzala...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    grazie a tutti per l'aiuto ,ma
    la variabile pos è inizializzata dentro il for ;

    le ho assegnato il valore 10

    e per quanto riguarda il problema return?

    grazie
    se non rispondo ai Pvt mandatemi una mail

  5. #5
    Devi inizializzare una variabile o se proprio non vuoi... dovrai mettere DUE return... uno dentro (che returna pos) e uno fuori che fa il return di un valore "non valido", ad esempio -1.

    Per risparmiare tempo e codice cmq metti il return solo dopo al for e inizializza pos a -1 o a quel che vuoi tu.
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da toni00c
    grazie a tutti per l'aiuto ,ma
    la variabile pos è inizializzata dentro il for ;
    No.
    Cosa succede se nome.length è 0 (cioè se l'array è vuoto)? Succede che la variabile resta senza valore. E quando si arriva a return pos, che cosa viene restituito? Morale della favola: inizializza la variabile fuori dal for (che comunque andrebbe rivisto).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Originariamente inviato da Emulator ®
    Devi inizializzare una variabile o se proprio non vuoi... dovrai mettere DUE return... uno dentro (che returna pos) e uno fuori che fa il return di un valore "non valido", ad esempio -1.

    Per risparmiare tempo e codice cmq metti il return solo dopo al for e inizializza pos a -1 o a quel che vuoi tu.
    grazie a tutti !

    1) ho inizializzato la variabile fuori dal for e il secondo errore è sparito ;
    2) ho dovuto mettere due return , uno dentro il for e uno anche fuori!
    questa cosa non la capisco proprio ; in C la fuzione si interrompeva e restituiva il controllo
    al chiamante al primo return , qui ne occorrono diversi?

    come mai?
    è una sorta di prevenzione degli error?
    se non rispondo ai Pvt mandatemi una mail

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da toni00c
    questa cosa non la capisco proprio ; in C la fuzione si interrompeva e restituiva il controllo
    al chiamante al primo return , qui ne occorrono diversi?

    come mai?
    Leggi il mio messaggio precedente.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Da C a Java poco cambia... il comportamento è il medesimo ed anzi dovrebbe darti errore anche C perché come dice Alex, se l'array è vuoto, il return dentro al for non viene richiamato (quindi cosa deve fare il programma?) e quindi è come se usassi void, una funzione che non ritorna nulla ma in realtà vuole un intero.

    Il compilatore non può sapere che l'array è vuoto o meno e vuole cmq che un return sia effettuato... come è giusto che sia
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

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