Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: metodo boolean

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49

    metodo boolean

    può essere giusto ?

    codice:
    
      /** il metodo
    
    
        		public boolean risiede(String[] _citta)
    
        	verifica se this risiede in una delle localita' memorizzate
        	nell'array citta. In caso positivo, il metodo restituisce true; false altrimenti.
    
        	Per esempio, si supponga che l'array citta contenga
        	i seguenti nomi di citta: Roma, Torino, Milano.
        	Se this risiede a Torino, il metodo restituisce true.
        	Se invece this risiede a Genova, il metodo restituisce false.
        */
    
    
        	public boolean risiede(String[] _citta) {
        		/* sviluppare il codice del metodo */
    
           for(int i = 0; i< _citta.length; i++){
           if ( this.citta== _citta[i])
              return true ;
    
        	}else 
       return false ;

  2. #2
    Che significa può essere giusto? L'hai provato? Funziona, non funziona, ti da errore?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    No, con lo stralcio di codice che hai scritto testi se è il primo elemento dell'array (infatti se non lo trova entra subito nell'else e da return false).

    codice:
    for(int i = 0; i< _citta.length; i++){
           if ( this.citta== _citta[i])
              return true ;
    
        	}
    }
    
    return false;
    xxx

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa this.citta che tipo è? una stringa o un char?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    è una stringa ......

    codice:
    /** Classe Persona: descrive persone che abitano in una citta'.
     */
    
    public class Persona {
    
    	private String nome;
    	private String citta;
    
     /** Costruttore di Default vuoto */
      public Persona() {
    
    		this.nome = " ";
    		this.citta =" ";
      }
    
     /** Costruttore con parametri*/
      public Persona(String nome, String citta) {
    		this.nome = nome;
    		this.citta = citta;
      }
    
      public String getNome () {
    		return nome;
      }
    
      public String getCitta() {
    	  return citta;
      }
    
      public String toString() {
    	  return "Nome : " + nome + " citta' di residenza : " + citta;
      }
    
    
        // PER L'ESAME: Definire il metodo specificato nel seguito
    
        /** il metodo
    
        		public boolean risiede(String[] _citta)
    
        	verifica se this risiede in una delle localita' memorizzate
        	nell'array citta. In caso positivo, il metodo restituisce true; false altrimenti.
    
        	Per esempio, si supponga che l'array citta contenga
        	i seguenti nomi di citta: Roma, Torino, Milano.
        	Se this risiede a Torino, il metodo restituisce true.
        	Se invece this risiede a Genova, il metodo restituisce false.
        */
    
    
        	public boolean risiede(String[] _citta) {
        		/* sviluppare il codice del metodo */
    
           for(int i = 0; i< _citta.length; i++){
           if ( this.citta== _citta[i])
              return true ;
    
        	}else 
       return false ;
    
    
    }// fine definizione classe

  6. #6
    Originariamente inviato da lurens79
    ...
    codice:
    ...
        // PER L'ESAME: Definire il metodo specificato nel seguito
    Da questo post e quello di ieri deduco che o il professore non ha insegnato nulla oppure hai studiato veramente poco perchè i quesiti che poni sono davvero banali.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    ho studiato tanto in poco tempo e non ho capito un c.... ci provo e ci riprovo cosa devo fare ?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora per le stringhe la classe String si fa il confronto con equals e non con ==.
    In generale il confronto == è il confronto per riferimento, se vuoi un comportamento diverso devi ridefinirlo in ogni classe. Considera che queste cose richiedono particolari accorgimenti.
    String, visto che è molto usata, fornisce già un'implementazione funzionante di equals, per cui utilizza quella per fare confronti, cioè

    codice:
    citta.equals(altrastring);
    Infine dai nomi significativi a quello che usi: se il tuo attributo di istanza si chiama citta cerca di non usare citta come parametro specie quando devi confrontarli: ti trovi a dover scrivere una marea di this che appensantiscono il codice.
    Prova con
    codice:
    public boolean risiede(String[] otherCitta){
      boolean ret = false; 
      for (int index = 0; index < otherCitta.length; index++){
          if (citta.equals(otherCitta[index]) {
                   ret = true; 
                   break;
           }
      }
    return ret; 
    }
    Inserisci un break (che a molti non piace), ma hai il vantaggio di avere un unico punto di uscita (il return ret finale)

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    scusami mah ... senza il brek come verrebbe ?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    codice:
    public boolean risiede(String[] otherCitta){
      for (int index = 0; index < otherCitta.length; index++){
          if (citta.equals(otherCitta[index]) {
                   return true; 
                   
           }
      }
    return false; 
    }

    se non sai fare una modifica simile mi rendo conto che hai grossi problemi di base.
    Se questo è un esame universitario preparati a non superarlo perché i problemi ce li hai sulle basi (su come fare un algoritmo), queste cose ti sono poco chiare, non le particolarità del linguaggio.

    Il mettere così l'algoritmo non mi piace molto perché hai diversi punti di uscita che in determinate situazioni ti possono creare problemi

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.