如何处理多个条件?
在我使用任何编程语言的1个月经验中,我假设switch
case
条件将接受括号中的任何内容作为布尔检查thingamajig,即:
|| &&
明白我的意思了吗?
就像是
char someChar = 'w'; switch (someChar) { case ('W' ||'w'): System.out.println ("W or w"); }
可悲的是,似乎没有这样的方式。 我不能在switch case中进行布尔检查。
有办法解决吗?
顺便说一句,如果我听起来很混乱,非常抱歉。 我还不太清楚这种语言的所有名称:X
任何答案都赞赏
对于这样的情况,您可以实现OR:
switch (someChsr) { case 'w': case 'W': // some code for 'w' or 'W' break; case 'x': // etc }
案例就像一个“goto”,多个gotos可以共享同一行开始执行。
你可以做 –
switch(c) { case 'W': case 'w': //your code which will satisfy both cases break; // .... }
每个案件通常都会出现“rest”; 声明指示执行应终止的位置。 如果省略“break;”,则执行将继续。 您可以使用它来支持应该以相同方式处理的多个案例:
char someChar = 'w'; { case 'W': // no break here case 'w': System.out.println ("W or w"); break; }
切换案例是用于给定表达式的替代评估的分支。 表达式在switch括号中给出,可以是byte,short,char和int数据类型。
switch语句的主体称为switch块。 可以使用一个或多个案例或默认标签来标记交换机块中的语句。 switch语句计算其表达式,然后执行匹配的case标签后面的所有语句。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
对于switch语句的替代( 多个条件 ),我认为最好的解决方案是使用枚举。 例如:考虑以下情况: –
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();
希望这可以帮助你们。