IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Comment remplacer un IF trop long ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut Comment remplacer un IF trop long ?
    Bonjour à tous,


    Voilà, je travaille sur une application qui a été développée par un ancien programmeur. Cette application a été développée avec Jdev 10g sous XP.

    Donc, je veux changer un IF d'une forme trop longue comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    If (type = 1 ou type = 2 ou type = 3  ou type = 4 ou type = 5
         ou type = 6 ou type = 7 ou type = 8 ou type = 9 ou type = 10
         ou type = 11 ou type = 11 ou type = 12 ou type = 13 ou type = 14
         ou type = 15 ou type = 16 ou type = 17 ou type = 18 ou type = 19 ...){
     
     ...
    }
    Comment puis je remplacer ce IF par un autre plus conviviable ?


    Merci d'avance de votre aide

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ben tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( 0 < type && type < 20 ) {
     
    }

    a++

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Par défaut
    Bonjour,
    Je sais pas si "type" dans son exemple est un int ou si c'est juste pour l'exemple. ^^'

    Dans le doute, j'aurais mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    List<Type> listType = getListType();
    if(listType.contains(type){
    ...
    }
    Edit : Grillé comme un poulet

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Moi je dis méfiance, il faudrait être un peu naïf pour coder comme ça,
    peut-être qu'il n'a pas le choix.
    Faut voir le contexte moi je dis.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Par défaut
    Je vois pas de cas où ma liste marche pas.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Par défaut
    un switch case peut-être ?
    Mais comme l'a dit GanYoshi, ça dépend du type...

  7. #7
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Dans ce cas, il est plus sécurisé de faire une méthode monTestSurUnEntier, qui va elle même utiliser la liste, en private static final ; comme ça on évite des modification intempestives sur cette liste dans le code (ce qui n'est pas censé arriver au vu du code).

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Citation Envoyé par GanYoshi Voir le message
    Je vois pas de cas où ma liste marche pas.
    Si ca marche, mais des fois il suffit de tester l'inverse qui est en fait très court et de faire un not dessus pour le même effet.
    Enfin faut voir le vrai code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment raboter un texte trop long et ajouter 3 petits points ?
    Par djibril dans le forum Téléchargez
    Réponses: 3
    Dernier message: 06/05/2014, 16h33
  2. Comment couper les mots trop longs
    Par marcello2 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 09/06/2009, 08h00
  3. Comment supprimer répertoire trop long ?
    Par Tueur_a_gage dans le forum Windows XP
    Réponses: 3
    Dernier message: 27/06/2006, 11h29
  4. [Conversion]Comment faire pour couper un Double trop long?
    Par dessinateurttuyen dans le forum Général Java
    Réponses: 1
    Dernier message: 13/11/2005, 02h22
  5. Comment remplacer trop de "if" ?
    Par Clad3 dans le forum C++
    Réponses: 14
    Dernier message: 28/03/2005, 20h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo