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 :

[Débutant]Faire un if avec un grand nombre de condition ?


Sujet :

Langage Java

  1. #1
    Invité
    Invité(e)
    Par défaut [Débutant]Faire un if avec un grand nombre de condition ?
    Bonsoir,

    Je voulais savoir s'il était possible de faire un if(conditions 1 || conditions 2 || ...)? En fait ce que je souhaiterais faire c'est un test sur un caractaire, si c'est un chiffre c'est bon si c'est autre chose c'est pas bon ...

    Merci pour l'aide et bonne nuit

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Bonsoir

    Il est possible de faire un if avec autant de condition que tu le souhaite.

    Coordialement

  3. #3
    Invité
    Invité(e)
    Par défaut
    Oups désolé mon écriture n'a pas suivi ma pensé

    Je voulais dire en fait, dans le cas où je veux juste tester un caractaire d'un string avec genre une vingtaine de tests à passer pour entrer dans le if, existe-t-il un moyen de le faire beaucoup plus court que 20 fois "string.charAt(i) != 'a''', "string.charAt(i) != 'b''', etc. ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Bas ne mis connaissant pas trop en JAVA je te repondrai un switch a la limite ^^ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    switch(variable)
            {
                case 'valeur1':
                    action1;
                break;
                case 'valeur2':
                    action2;
                break;
                case 'valeur3':'valeur4':
                    action3;
                break;
                default:
                    action4;
                break;
            }

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bah non car il y aura encore plus de ligne

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Tu as combien de condition au total ??

  7. #7
    Invité
    Invité(e)
    Par défaut
    Et bien en fait c'est tous les caractaires possibles sauf les chiffres donc je sais pas trop.

    J'ai fait avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(temp.charAt(i) == '0' || temp.charAt(i) == '1' || temp.charAt(i) == '2' || temp.charAt(i) == '3' || temp.charAt(i) == '4' ||
      temp.charAt(i) == '5' || temp.charAt(i) == '6' || temp.charAt(i) == '7' || temp.charAt(i) == '8' || temp.charAt(i) == '9')
    Comme ça c'est pas très grand mais c'est surtout par curiosité que j'ai posé cette question car il doit bien y avoir un moyen de racourcir ça.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Franchement je ne sais pas lol ^^ n'ayant pas de connaissance en java ^^je ne sais pas trop mais perso je tenterait selon ce que j'ai pu lire .

    Avec un equals et une boucle do while en comparant caractere par caractere

  9. #9
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    --> javadoc --> classe Character --> méthode isDigit()
    ...

  10. #10
    Invité
    Invité(e)
    Par défaut
    merci beaucoup iohack

    Il me semblait bien qu'il y avait un moyen plus simple. Mais sinon dans le cas où la condition aurait été que le caractère soit égal à au moins une vingtaine de caractaires (aléatoire), n'y a-t-il pas une solution plus courte ? Genre on met les caractaires valide dans un tableau, et le if par une certaine manière va tester un par un le caractaire à analyser avec ceux contenu dans le tableau ?

  11. #11
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    En effet, il y a plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String s = "aBCdefGhiJKLmnOpqRStuVWxYz";
     
    if (s.indexOf(temp.charAt(i)) >= 0) {
       ...
    }

  12. #12
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par spawntux
    Bas ne mis connaissant pas trop en JAVA je te repondrai un switch a la limite ^^
    Le switch ne fonctionne qu'avec des int (ou des types 'compatibles'). Cela ne peut pas marcher avec une String !


    Citation Envoyé par nicofromChina
    Mais sinon dans le cas où la condition aurait été que le caractère soit égal à au moins une vingtaine de caractaires (aléatoire), n'y a-t-il pas une solution plus courte ? Genre on met les caractaires valide dans un tableau, et le if par une certaine manière va tester un par un le caractaire à analyser avec ceux contenu dans le tableau ?
    Pourquoi ne pas utiliser les expressions régulières ??? Par exemple pour une chaines de 20 lettres ou plus ( \p{L} représente une lettre quelconques) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        String s = ...;
     
        if (s.matches("\\p{L}{20,}")) {
        	// ...
        }
    Plus d'info dans l'API : http://javasearch.developpez.com/j2s...x/Pattern.html

    a++

  13. #13
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Si c'est juste pour faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(temp.charAt(i) == '0' || temp.charAt(i) == '1' || temp.charAt(i) == '2' || temp.charAt(i) == '3' || temp.charAt(i) == '4' ||
      temp.charAt(i) == '5' || temp.charAt(i) == '6' || temp.charAt(i) == '7' || temp.charAt(i) == '8' || temp.charAt(i) == '9')
    Tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c = temp.charAt(i);
    if(c >= '0' && c <= '9')

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 466
    Points : 632
    Points
    632
    Par défaut
    Non rom comme il l'as precisé c'est pour tester toute les letytre de l'alphabet ^^ il me semble du moins .

    Par compte fait gaffe a la casse si je ne me trompe pas ^^ (enfin me semble que JAVA est sensible a la casse)

  15. #15
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Pour les lettres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char c = (char)(temp.charAt(i) | 32);
    if(c >= 'a' && c < 'z')
        ...
    (le | 32 est une astuce pour gérer à la fois les majuscules et les minuscules (qui ne diffèrent que par le bit numéro 5 qui est à 0 pr les majuscules et à 1 pour les minuscules)
    Mais bon, c'était histoire de, c'est pas relisible lol

  16. #16
    Invité
    Invité(e)
    Par défaut
    Ok merci tout le monde

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

Discussions similaires

  1. pagination avec de grands nombres de pages
    Par biggyboy dans le forum Langage
    Réponses: 4
    Dernier message: 12/06/2009, 09h48
  2. [AJAX] Actualiser un div avec un grand nombre de paramètres
    Par yoshï dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/11/2008, 11h43
  3. [débutant] faire un JAR avec les drivers JDBC
    Par korrigann dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 29/11/2006, 16h46
  4. Réponses: 8
    Dernier message: 21/11/2005, 17h18
  5. [Débutant] Faire un exit avec &
    Par thybo dans le forum C++
    Réponses: 7
    Dernier message: 23/11/2004, 20h33

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