web-dev-qa-db-fra.com

Comment faire un cas avec plusieurs conditions?

Au cours de l’expérience d’un mois vécue avec n’importe quel langage de programmation, j’ai supposé que les conditions switchcase acceptaient tout ce qui était entre parenthèses comme vérification booléenne, c’est-à-dire.

|| && < >

Sais ce que je veux dire?

quelque chose comme

char someChar = 'w';
switch (someChar) {
case ('W' ||'w'):
    System.out.println ("W or w");
}

Malheureusement, ne semble pas fonctionner de cette façon. Je ne peux pas avoir de vérification booléenne en cas de commutateur. 

Y a-t-il un moyen de le contourner?

Au fait, terriblement désolé si je parais déroutant. Je ne connais pas encore les noms de tout dans cette langue: X
Toute réponse appréciée

21
AfroMan

Vous pouvez obtenir un OR pour des cas comme celui-ci:

switch (someChsr) {
case 'w':
case 'W':
    // some code for 'w' or 'W'
    break;
case 'x': // etc
}

Les cas sont comme un "goto" et plusieurs gotos peuvent partager la même ligne pour commencer l'exécution.

46
Bohemian

Tu peux faire -

switch(c) {
    case 'W':
    case 'w': //your code which will satisfy both cases
              break;

    // ....
}
6
devang

Chaque cas est normalement suivi d'une "pause"; instruction pour indiquer où l'exécution doit se terminer. Si vous omettez le "break;", l'exécution se poursuivra. Vous pouvez l'utiliser pour prendre en charge plusieurs cas qui doivent être traités de la même manière:

char someChar = 'w';
{
case 'W':
  // no break here
case 'w': 
  System.out.println ("W or w");
  break;
}
3
JimN

Switch Cases sont des branches pour des évaluations alternatives d'une expression donnée. L'expression est donnée entre parenthèses et peut être des types de données byte, short, char et int.

Le corps d'une instruction switch est appelé bloc switch. Une déclaration dans le bloc de commutateurs peut être étiqueté avec un ou plusieurs cas ou valeur par défaut Étiquettes. L'instruction switch évalue son expression, puis exécute toutes les instructions qui suivent le libellé de la casse correspondante.

http://docs.Oracle.com/javase/tutorial/Java/nutsandbolts/switch.html

1
Aram Kocharyan

Pour une autre instruction consistant à changer d’instruction ( multiple si les conditions ), je pense que la meilleure solution consistera à utiliser un enum. Par exemple: considérons le cas ci-dessous: -

    public enum EnumExample {

  OPTION1{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the first option.");
      return void;
    }

  },
  OPTION2{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the second option.");
      return void;
    }

  },
  OPTION3{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the third option.");
      return void;

  };

  public static final String CLASS_NAME = Indicator.class.getName();

  public abstract void execute();

}

L'énumération ci-dessus peut être utilisée de la manière suivante:

EnumExample.OPTION1.execute();

Espérons que cela vous aide les gars.

0
Jibandeep Bal