我在Java中有一个开关盒,如下所示:
switch(int example)
{
case 1: //Do different
break;
case 2: //Do different
break;
/** For int more than 2, then I need
for it to do something same.
*/
case 3://Do different and case6
break;
case 4://Do different and case6
break;
case 5://Do different and case6
break;
case 6:
break;
}
SAN有一个特殊的case 6函数,case 3-5调用该函数,这样做的优雅方式是什么?(我在这里使用int,但这是一个例子,所以我不能使用if(int)
我不确定它是否优雅,但一种方法是有两个开关
块:
switch(int example)
{
case 1: //Do different
break;
case 2: //Do different
break;
case 3:
// Do whatever
break;
case 4:
// Do whatever
break;
case 5:
// Do whatever
break;
}
switch(int example)
{
case 3:
case 4:
case 5:
case 6:
// Do whatever (case 3-5 fall through)
break;
}
我能想到的一种方法是将代码移动到不同的函数。像这样的。
void case1(){
// do something
}
...
void case3(){
// do something
case6();
}
...
void case6(){
// do something
}
// This switch is in some other method.
switch(int example)
{
case 1: //Do different
case1();
break;
...
case 3://Do different and case6
case3(); //internally calls case 6
break;
...
case 6:
case6();
break;
}
或者,您甚至可以为每个案例使用不同的方法,并在案例3:
中调用case3()
和case6()
方法。无论哪种方式,方法解决方案都会起作用,而且IMHO会更优雅一些,并且有多个switch
语句。
开关并不能完全按照你的要求去做。不过,您可以使用嵌套开关构造如下内容:
outer_switch: switch (example) {
case 1: System.out.println("1");
break;
case 2: System.out.println("2");
break;
default: {
switch (example) {
case 3: System.out.println("3");
break;
case 4: System.out.println("4");
break;
case 5: System.out.println("5");
break;
case 6: System.out.println("6");
break;
default: break outer_switch;
}
System.out.println("not 1 nor 2");
}
}
请注意标有“断开”的outer_开关
,如果示例
不符合任何内部情况,这是一种绕过共享代码的方法。
本文向大家介绍dart 开关盒,包括了dart 开关盒的使用技巧和注意事项,需要的朋友参考一下 示例 Dart有一个可用于代替长if-else语句的开关盒: 您只能比较整数,字符串或编译时常量。被比较的对象必须是同一类的实例(而不是其任何子类型的实例),并且该类不得覆盖==。 Dart中switch的一个令人惊讶的方面是非空case子句必须以break结尾,或者更不常见的是continue,thr
我正在编写一个程序,接收用户的出生信息,年、月、日、时、分。该计划如下: 使用< code>getRangedInt方法输入一个人出生的年份(1965-2000)、月份(1-12)、日期*、小时(1-24)、分钟(1-59)。 注意:使用switch()条件选择器结构将用户限制在其出生月份的正确天数内。例如,如果他们出生在2月[1-29]日、10月[1-31]日。提示:这里只有几个组,而不是12个
问题内容: 苹果文档说 每个switch语句必须详尽无遗。也就是说,所考虑类型的每个可能值都必须与切换条件之一匹配。 所以在新的Xcode中,我放置了这样的代码 现在,如果我删除默认部分,则会出现编译器错误: 切换必须详尽无遗 是否要添加丢失的案例?固定 所以我的问题是我提到的一个案例,因为我没有提到??的所有案例值。但是我仍然遇到错误?为什么会出现此错误,我错过了什么吗? 问题答案: Swift
发面经攒人品 电话面试,40min左右 1.讲一下MySQL事物的四个特性? ACID 没展开讲 2.介绍一下Java的ArrayList和LinkedList 有什么区别? 顺序表和双向链表 3.常用的java其他数据结构 hashmap concurrenthashmap 4.有什么区别? 讲了一下底层数据结构 5项目拷打 5.1为什么用图数据库? 详细讲了一下项目的架构和需求 5.2在你的项
问题内容: 我试图用谷歌搜索,但是没有运气。 我的开关很大,有些情况 显然 比其他情况 更常见 。 因此,我想知道订单是否真正保持原状,并且在“下”之前先测试“上”案例,因此可以更快地进行评估。 我想保留订单,但是如果它影响速度,那么重新排序分支将是一个好主意。 例如: 问题答案: 对switch语句重新排序没有任何效果。 查看Java字节码规范,可以将a编译为a 或一条指令,然后打开a 。A 总
我试图谷歌这个,但运气不好。 我有一个很大的转变,有些病例明显比其他病例更常见。 所以我想知道订单是否真的保持原样,并且“上层”案例在“下层”案例之前得到测试,因此评估得更快。 我想保留我的订单,但如果这会影响速度,那么重新排序分支将是一个好主意。 举例说明: