gpt4 book ai didi

java - 使用案例陈述

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:04 24 4
gpt4 key购买 nike

我使用 int[] 数组作为引用。我想知道我对 case 语句的使用是否合理,或者它是否会导致错误。

这是我的代码:

    int switcheroo = intarray[0];
int foo = intarray[1];
boolean size = false;
boolean biggersize = false;

switch (switcheroo) {

case 0:
switch (foo) {
case 1:
doSomething(switcheroo); //change switcheroo somehow.
break;
case 2:
doSomethingElse(switcheroo); //change switcheroo differently.
break;
}
case 1:
size = true;
break;
case 2:
biggersize = true;
break;
default:
break;
}

除非是巧合,否则这会按照我的意愿将嵌套案例语句中的更改波及到其他案例中。

我的问题是:

这种嵌套会不会在后续造成麻烦?

就是缺少休息;在一个案例坏习惯之后?

谢谢。

编辑:在 switch 语句中间更改 switcheroo 的方法被放在那里以响应它。我不会这样做,这是我的计划。

最佳答案

嵌套不会造成问题,但会让人难以阅读。添加评论和/或其他文档将真正帮助 future 的编码人员(以及一周后的你自己!)通过查看它来理解这一点。

缺少 break 本身并不是一个坏习惯,但它是 -most-case 语句所具有的东西,所以我会在末尾添加注释,如 //no break, allow fall-通过

所以这两种情况都归结为良好的文档。

这些观点与我认为这段代码不会按照您的想法行事这一事实相垂直。

case 子句不会在您每次遇到时都重新评估 - 它们只是跳转到以进行切换的点。因此,在您的示例中,如果您从 case 0 开始,您将总是case 1 结束-您永远不会以 结束>案例 2 来自 案例 0

如果我要重组它,这就是我会做的。我不使用 int,而是使用 enum:

enum Foo { GOOD_FOO, BAD_FOO }
enum Switcharoo { BAR, BAZ, BAQ, ESCAPE }
enum Size { NONE, REGULAR, BIGGER }

Foo foo = ... // assigned somewhere
Switcharoo roo = ... // assigned somewhere
Size size = NONE;

// use a while loop to reevalulate roo with each pass
while(roo != Switcharoo.ESCAPE) {
switch(roo){
case BAR:
switch(foo) {
case GOOD_FOO: foo = doSomething(foo); break;
case BAD_FOO: foo = doSomethingElse(foo); break;
}
break;
case BAZ:
roo = Switcharoo.ESCAPE;
size = Size.REGULAR;
break;
case BAQ:
roo = Switcharoo.ESCAPE;
size = Size.BIGGER;
break;

}
}

关于java - 使用案例陈述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11672250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com