Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] manca una graffa?

    Il compilatore mi dice che manca una graffa A me non mi sembra, voi cosa ne dite? E' una semplice procedura per riempire una tabella di due colonne con coppie variabile-valore, se c'è gia una variabile cambia solo il valore, se l'array è pieno restituisce true...
    dov'è l'errore? :master:

    codice:
     public boolean assegnamento(String nomeVariabile, String valoreVariabile){
    
        if(righeRiempite==0) {             // inserimento del primo valore
          array[righeRiempite][0] = nomeVariabile;
          array[righeRiempite][1] = valoreVariabile;
          righeRiempite++;
          return false;
        }
    
        else if(righeRiempite <= RIGHE){
          int i=0;
          while(i<righeRiempite){
            if(array[i][0]==nomeVariabile){
              array[i][1] = valoreVariabile;
              return false;
            }
            else i++;
          }
    
          if(righeRiempite<RIGHE){
            array[righeRiempite][0] = nomeVariabile;
            array[righeRiempite][1] = valoreVariabile;
            righeRiempite++;
            return false;
          }
        }
    
        else return true;
      }

  2. #2
    onestamente mi pare tutto apposto

    non è che non hai dichiarato qualcosa in vicinanze di una graffa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    ho aggiunto un return true prima della penultima graffa e funziona...mi sembra davvero strano...ma il programma lo faccio io? O è il compilatore? bah...

    Non c'è spiegazione...

  4. #4
    diciamo che alla fine i meriti sono suoi e le rogne nostre

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Mi piacerebbe che qualcuno bravo del forum mi spiegasse cosa è successo...se volete disporre di tutto il listato chiedetemelo pure...per ora per me è un X-File.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    In pratica, un errore del genere viene se entro la fine del programma non dici cosa restituire..è come se avessi ingannato il compilatore da fargli credere di essere alla fine del programma e di non aver fatto una return

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da Lucked
    Mi piacerebbe che qualcuno bravo del forum mi spiegasse cosa è successo...se volete disporre di tutto il listato chiedetemelo pure...per ora per me è un X-File.
    Tranquillo, non è un X-File, semplicemente in quel programma manca un "return", infatti se segui il filo, se il programma entra nel blocco else:

    else if(righeRiempite <= RIGHE){

    se non entra nell'ultimo if:

    if(righeRiempite<RIGHE){


    si prosegue in un ramo senza nessuna istruzione di return; non a caso se inserisci il return prima della penultima riga funziona tutto. L'unica cosa un po strana è il messagio di errore che ti viene indicato, a me, con la versione 1.4, il compilatore mi segnala:

    Codice PHP:
    missing return statement:

    public 
    boolean assegnamento(String nomeVariabileString valoreVariabile){ 



  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Si si..ho capito...alla fine mettevo else return true..cosi il compilatore si sentiva sprovvisto di soluzione finale..allora ho fatto una cosa piu furba...ho messo return true alla fine levando l'else e ora tutto collima.

    Grazie ANX

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Se dichiari che un metodo ritorna un boolean allora ogni possibile ramo di esecuzione del metodo deve poter ritornare un boolean :quote: Non siamo in c dove uno puo fare quel che vuole ...(per fortuna...)


  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Un piccolo suggerimeto per rendere piu leggibile un programma in cui ci sono molti if-esle in cascata:

    se ogni blocco IF termina con un return, è inutile mettere gli else, tanto il metodo comuqnue ritorna finito l'if, il tuo metodo diverrebbe:

    Codice PHP:

    public boolean assegnamento(String nomeVariabileString valoreVariabile){

        if(
    righeRiempite==0){          
              array[
    righeRiempite][0] = nomeVariabile;
              array[
    righeRiempite][1] = valoreVariabile;
              
    righeRiempite++;
              return 
    false;
        }
        if(
    righeRiempite <= RIGHE){
              
    int i=0;
              while(
    i<righeRiempite){
                  if(array[
    i][0]==nomeVariabile){
                      array[
    i][1] = valoreVariabile;
                      return 
    false;
                  }
                  else 
    i++;
              }
              if(
    righeRiempite<RIGHE){
                  array[
    righeRiempite][0] = nomeVariabile;
                  array[
    righeRiempite][1] = valoreVariabile;
                  
    righeRiempite++;
                  return 
    false;
             }
         }
        return 
    true;


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.