如何在多个条件下做一个案例



在我使用任何编程语言的 1 个月经验中,我假设switch case条件将接受括号中的任何内容作为布尔检查 thingamajig,即这些:

|| && < >

明白我的意思吗?

类似的东西

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

可悲的是,似乎不是那样工作的。我不能在开关情况下进行布尔检查。

有没有办法解决它?

顺便说一句,如果我听起来很困惑,非常抱歉。我还不太知道这种语言中所有内容的名称:X
赞赏任何答案

对于

以下情况,您可以实现 OR:

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

案例就像一个"goto",多个goto可以共享同一行来开始执行。

你可以做 -

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

每个案例通常后面都有一个"break;"语句,以指示执行应该在哪里结束。 如果省略"break;",则执行将继续。 您可以使用它来支持应以相同方式处理的多种情况:

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

开关案例是用于给定表达式的替代计算的分支。表达式在开关括号中给出,可以是字节、短整型、字符和整型数据类型。

switch 语句的主体称为开关块。一个声明 在开关块中可以标有一个或多个大小写或默认 标签。switch 语句计算其表达式,然后执行 匹配大小写标签后面的所有语句。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

对于切换语句的替代方法(多个如果条件),我认为最好的解决方案是使用枚举。例如:考虑以下情况:-

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

希望这对你们有所帮助。

最新更新