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 :

Switch et conditions multiples


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut Switch et conditions multiples
    mon probleme est pas bien dur, je voudrais savoir si c'est possible de faire qqch du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch(j)
    {	
                    case(1|2|3|5|7|8|11|14):
    	{						                System.out;println("salut");				break;
    	}
    	default:
    	{
    	                System.out;println("bonjour");
    		break;
    	}
    }
    , a savoir un case avec des choix multiples, ou on doit absolument faire
    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    switch(j)
    {	
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 7:
                    case 8:
                    case 11:
                    case 14:
    	{						                System.out;println("salut");				break;
    	}
    	default:
    	{
    	                System.out;println("bonjour");
    		break;
    	}
    }
     
    c'est quand meme beaucoup plus long
    merci

  2. #2
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 63
    Par défaut
    syntaxiquement correct, mais l'exp (1|2.....) n'est pas la même chose que 1 ou 2 ... pris separement (c un or boolean) donc ca donnera pas le meme resultat

  3. #3
    Membre chevronné
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Par défaut
    Lut,
    solution 2: une seule valeur par "case".

    Cependant, si tu as un algo pour regrouper des cas, tu peux faire un "prétraitement"...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int value = ...;
    int switchValue = 0;
    if (value >= 0 || value < 11) {
      switchValue = 1;
    }
    if (capitaine.name.equals("Haddock")) {
      switchValue = 2;
    }
    switch (switchValue) {
      case 1: // trucs à faire si value compris entre 0 et 10;
      case 2: ...
    }
    Il faudrait bien entendu utiliser des constantes pour les switchValue... mais bon si ça peut déjà donner des idées... Ensuite, il faut voir si ça vaut la peine de faire un switch, et si ça apporte quelque chose par rapport au if...

    A+

  4. #4
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 63
    Par défaut
    du fait que si j = x (1<x<=n) alors j|x donnera j (ou x)
    ensuite le case (1|2|....n) fonctionnera
    le seul hic c que la combinaison sera produit par d'autres valeurs aussi
    (par ex. 1|2 = 3) et ds ce cas le compilateur signalera un duplicate case (deux cases avec la meme valeur)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Par défaut
    non c pas la peine en fait c'est pour remplir une matrice constante de cette forme:



    A R N D C Q E G H I L K M F P S T W Y V
    A 2
    R -2 6
    N 0 0 2
    D 0 -1 2 4
    C -2 -4 -4 -5 4
    Q 0 1 1 2 -5 4
    E 0 -1 1 3 -5 2 4
    G 1 -3 0 1 -3 -1 0 5
    H -1 2 2 1 -3 3 1 -2 6
    I -1 -2 -2 -2 -2 -2 -2 -3 -2 5
    L -2 -3 -3 -4 -6 -2 -3 -4 -2 2 6
    K -1 3 1 0 -5 1 0 -2 0 -2 -3 5
    M -1 0 -2 -3 -5 -1 -2 -3 -2 2 4 0 6
    F -4 -4 -4 -6 -4 -5 -5 -5 -2 1 2 -5 0 9
    P 1 0 -1 -1 -3 0 -1 -1 0 -2 -3 -1 -2 -5 6
    S 1 0 1 0 0 -1 0 1 -1 -1 -3 0 -2 -3 1 3
    T 1 -1 0 0 -2 -1 0 0 -1 0 -2 0 -1 -2 0 1 3
    W -6 2 -4 -7 -8 -5 -7 -7 -3 -5 -2 -3 -4 0 -6 -2 -5 17
    Y -3 -4 -2 -4 0 -4 -4 -5 0 -1 -1 -4 -2 7 -5 -3 -3 0 10
    V 0 -2 -2 -2 -2 -2 -2 -1 -2 4 2 -2 2 -1 -1 -1 0 -6 2 4

    et dont les valeurs sont constantes, mais n'ayant aucune logique (enfin si mais je pense pas que ca soit traduisible en informatique^^)
    et symétrique par rapport a la diagonale.

    en fait quand je fais 1|3|5, il compare les nombres en binaire et me renvoie le résultat (ici 5) et le teste dans le case?

    sinon je vais faire des cases a la suite ca sera plus simple
    merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/05/2007, 15h06
  2. switch 2 conditions
    Par NESTLE dans le forum C++
    Réponses: 22
    Dernier message: 08/05/2007, 19h23
  3. [JSTL] c:if avec conditions multiples
    Par japz dans le forum Taglibs
    Réponses: 2
    Dernier message: 01/12/2006, 11h58
  4. Calcul requête avec conditions multiples
    Par Phullbrick dans le forum Access
    Réponses: 7
    Dernier message: 18/04/2006, 13h45
  5. Calculs dans une requete avec conditions multiples
    Par Sha1966 dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2006, 15h18

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