web-dev-qa-db-ja.com

複数の条件でケースを行う方法は?

プログラミング言語での1か月の経験では、switchcase条件は、かっこ内のすべてのものをブールチェックの事柄として受け入れると仮定しました。

|| && < >

わかる?

何かのようなもの

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

悲しいことに、そのように動作しないようです。スイッチケースでブールチェックを行うことはできません。

それを回避する方法はありますか?

ちなみに、私が混乱しているように聞こえるなら、すみません。この言語のすべての名前はまだわかりません:X
任意の回答を高く評価

23
AfroMan

次のような場合にORを実現できます。

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

ケースは「goto」のようなもので、複数のgotoが同じ行を共有して実行を開始できます。

49
Bohemian

できるよ -

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

    // ....
}
6
devang

通常、すべてのケースの後に「ブレーク」が続きます。実行を終了する場所を示すステートメント。 「break;」を省略すると、実行が継続されます。これを使用して、同じ方法で処理する必要がある複数のケースをサポートできます。

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

スイッチケースは、特定の式の代替評価の分岐です。式はスイッチの括弧で指定され、byte、short、char、およびintデータ型にすることができます。

Switchステートメントの本体は、switchブロックと呼ばれます。 switchブロック内のステートメントには、1つ以上のケースまたはデフォルトのラベルを付けることができます。 switchステートメントはその式を評価してから、一致するcaseラベルに続くすべてのステートメントを実行します。

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

1
Aram Kocharyan

Switchステートメントの代替(複数のif条件)の場合、最善の解決策は列挙型を使用することだと思います。例:以下の場合を考えてください:

    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();

}

上記の列挙型は、次の方法で使用できます。

EnumExample.OPTION1.execute();

これが皆さんの助けになることを願っています。

0
Jibandeep Bal