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

    [JAVA] if con molteplici or

    Dunque:
    ho una classe java che ha un metodo che recupera un parametro String.
    tale parametro puo' avere molteplici valori e all'interno del metodo c'è un if così strutturato

    if((param.equals("QA"))||(param.equals("aA"))||(pa ram.equals("zA"))||(param.equals("sdQA"))||
    (param.equals("QAw1"))||(param.equals("QAs"))||(pa ram.equals("QzA"))||(param.equals("QAaaq1"))||(par am.equals("zzz"))
    ||(param.equals("oo")))
    {
    .....codice
    }

    insomma per intenderci ci sono vari OR(e potrebbero anche crescere)

    dal punto di vista funzionale tutto ok ma da quello della sintassi mi sembra stia diventando unpo' strano.
    come posso modificare una simile sintassi per renderla leggibile???
    ho visto che switch si usa solo per i char e per gli int; ho pensato magari di mettere tutte le stringhe in un array(o un vettore) e poi usare un if tipo:

    if(param è nel vettore)
    {
    .....codice
    }

    mi conviene fare qualcosa di simile o è meglio lasciare il codice come è???
    suggerite qualche altra soluzione??

    grazie

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    potresti sennò creare un metodo privato isValidParam e dentro ci metti solo il controllo andando a capo per ogni || stando bene in ordine.

    Dopo la parte di prima diventarà:

    codice:
    if(isValidParam(param)) {
    //code
    }
    cmq anche qualla del vettore potrebbe andare, hai anche i metodi di Collections di ricerca pronti per essere usati.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3

  4. #4
    Originariamente inviato da netarrow
    potresti sennò creare un metodo privato isValidParam e dentro ci metti solo il controllo andando a capo per ogni || stando bene in ordine.

    Dopo la parte di prima diventarà:

    codice:
    if(isValidParam(param)) {
    //code
    }
    cmq anche qualla del vettore potrebbe andare, hai anche i metodi di Collections di ricerca pronti per essere usati.

    grazie innanzitutto

    ipotesi 1:beh ma con la tua soluzione cambierebbe poco rispetto a mettere tutto nell'if


    ipotesi vettore: l'uso di un vettore non peggiorerebbe le prestazioni??

  5. #5
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    usando il metodo sarebbe più ordinato perchè quel if starebbe da solo in uno campo di visibilità e sarebe più facile da formattare e rendere leggibile.

    Per quanto riguarda il vettore se usi gli algoritmi di Collections le prestazioni cambierebbero di poco; certo ci sarebbe un'oggetto in più in memoria e qualche dati aggiunto che renderebbe più pesante il programma ma proprio di poco.

    Io cmq farei il metodo in più ben ordinato:

    codice:
    private boolean isValidparam(String param) {
    return ((param.equals("QA"))|| (param.equals("aA"))||
           (param.equals("zA"))||(param.equals("sdQA"))|| 
           (param.equals("QAw1"))||(param.equals("QAs"))||
           (param.equals("QzA"))||(param.equals("QAaaq1"))||
           (param.equals("zzz"))||(param.equals("oo")));
    }
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  6. #6

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.