对于一个开关案例,假设我有5个不同的案例,其中三个共享一个我不想重复的共同动作。以下代码完美地说明了我想要实现的目标(但在切换中):
int x = 5;
if(x == 1) {
System.out.println("one");
} else if (x == 2) {
System.out.println("two");
} else {
String common = "thirty-";
if (x == 3) {
method_one(common);
} else if (x == 4) {
method_two(common);
} else if (x == 5) {
method_three(common);
}
}
我能把它写成一个优雅的开关盒吗?我目前的解决方案如下所示:
int[] smallGroup = {1,2};
if (!Arrays.asList(smallGroup).contains(x))
common = "thiry-";
对于一个开关案例,想象我有5个不同的案例,其中3个案例有一个共同的动作,我不想重复。
在switch case块中对案例进行分组的通常方法是简单地将它们的案例标记组合在一起。没有规则强制要求每个case标记后面必须紧跟一段代码。
下面的代码块说明了这一点,它将分数日数转换为小时:分钟:秒:毫秒。分钟和秒案例的代码是共享的,它们的案例被分组在一起:
// HOURS, MINUTES, SECONDS, AND MILLIS are integer constants; f is a fractional day
for (int i = HOURS; i <= MILLIS; i++) {
switch (i) {
case HOURS:
f = f * 24.0;
break;
case MINUTES: case SECONDS:
f = f * 60.0;
break;
case MILLIS:
f = f * 1000.0;
break;
}
x = trunc(f); // trunc() here is equivalent to Math.floor()
hmsm[i] = (int) x; // hmsm[] is the result array
f = f - x;
}
顺便说一句,有一种更优雅的方法可以用整数算术将小数日转换为H: M: S: M,但以上是说明性的。
有人能建议我如何替换下面的代码吗? 如何重写代码以避免重复块{code>case 3:{code block A;break;} ? 如何将案例1和案例3的代码组合起来?
问题内容: 我需要在JavaScript的switch语句中使用多种情况,例如: 我怎样才能做到这一点?如果没有办法在JavaScript中执行类似的操作,我想知道一个也遵循DRY概念的替代解决方案。 问题答案: 使用语句的直通功能。匹配的大小写将一直运行到找到(或语句的末尾)为止,因此您可以这样写:
问题内容: 在C语言中非常常见:像这样入侵“空if语句”: 它在Python中工作吗?我的意思是,我们可以通过使用它来提高应用程序的性能吗?我也想知道为什么。 问题答案: 如果“ if”中没有其他情况,则性能会得到改善,因为字节码不会将执行传递给“ if”情况。 这是一些功能和输出 以下示例应用程序: 分解为: 以下 分解为:
我试图在CSS/HTML和JavaScript中重新创建这种切换。当关闭时,切换显示标题:“Stap 2 Implementatie in de Organizatie”和一个图标(圆圈中有加号)。当打开时,它会显示一些文本,下面是一个带有可下载工具的部分,它们可以被实现为相邻的图像,但如果图标和文本分开,它可能更多用途。 我已经设法创建了标题,它下面的文本,我只是需要帮助: 关闭切换和打开切换的
问题内容: 我想使用CSS在html中创建一个切换按钮。我想要它,以便当您单击它时,它保持推入状态,而不是再次单击时它弹出。 如果没有办法仅使用CSS。有没有办法使用jQuery? 问题答案: 良好的语义方式是使用复选框,然后如果未选中,则以不同的方式设置其样式。但是没有好的方法可以做到这一点。您必须添加额外的跨度,额外的div,并且要真正看起来不错,请添加一些javascript。 因此最好的解
Apache Camel(在JavaDSL)中是否有类似于Java开关盒的构造? 例如: 可以翻译成更类似于switch的东西吗?我的意思是,我不想使用简单的谓词,只使用body元素类型的值。还是我的方法完全错了?(这可能是合理的)