Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java]Verifier si une valeur est égale à plusieurs valeurs

Dans un Switch

Sujet résolu
    2 avril 2006 à 20:37:22

    Bonjour, (ou plutôt bonsoir ^^ )
    Je suis en train de faire un programme en Java et à un moment je lui demande de vérifier si une certaine case d'un tableau est égale à deux autres, voilà le bout de code:
    switch(tableau [0] [2])
      {
       case tableau [1] [2] && tableau [2] [2] : gagne(tableau [0] [2]);
       break;
       case tableau [1] [1] && tableau [2] [0] : gagne(tableau [0] [2]);
       break;
      }

    Et j'ai cette erreur:
    Morpion.java:47: operator && cannot be applied to char,char


    Donc ma question c'est de savoir si il est possible dans un switch de vérifier si une valeur est égale à deux (ou plus) autres valeurs?

    Merci d'avance :)

    Bartimeus
    • Partager sur Facebook
    • Partager sur Twitter
      2 avril 2006 à 22:17:20

      Cela renvoie une erreur car tu ne peux mettre un && que pour comparer deux valeurs booléennes.
      Donc
      variable==tableau[1][2] && autreVariable == tableau[2][2]
      serait plus approprié mais là encore, il y aurait un problème ^^ . C'est que le switch attend une valeur entière à comparer avec la variable qui lui a été fournie et il ne sait que faire d'une valeur booléenne.

      Je connais le moyen de faire un || avec switch

      switch(variable){
           case valeur_1:
           case valeur_2:
                   //instructions à faire si variable==valeur_1 || variable==valeur_2;
                   break;
           case valeur_3:
                   //instructions à faire si variable==valeur_3
      }


      Voilà, le fait de ne pas mettre de break au cas où variable == valeur_1 fait qu'il va exécuté le cas suivant, ce qui équivaut à faire un ||

      Pour le &&, je crois qu'on peut faire ça:
      int i=0;
      switch(variable){
           case valeur_1:
                   i=1;
           case valeur_2:
                   if(i==1)
                      //instructions à faire si variable==valeur_1 && variable==valeur_2;
                   break;
      }


      Mais il y a peut-être un moyen plus simple :-°
      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2006 à 18:41:12

        Merci pour ta réponse. :)
        Mais vu que je voulais utiliser un switch pour faire un truc simple et qu'apperement c'est pas vraiment possible :D (en restant simple)
        J'ai fait ça, pour ceux que ça intéresse:
        if(tableau [0] [2] == tableau [1] [2] && tableau [2] [2] == tableau [0] [2]) gagne(tableau [0] [2]);
           if(tableau [0] [2] == tableau [1] [1] && tableau [2] [0] == tableau [0] [2]) gagne(tableau [0] [2]);

        Ce qui correspond donc à ça:
        switch(tableau [0] [2])
          {
           case tableau [1] [2] && tableau [2] [2] : gagne(tableau [0] [2]);
           break;
           case tableau [1] [1] && tableau [2] [0] : gagne(tableau [0] [2]);
           break;
          }

        Sauf que c'est un peu moins lisible et que ça marche. ^^
        • Partager sur Facebook
        • Partager sur Twitter

        [Java]Verifier si une valeur est égale à plusieurs valeurs

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown