切换if if,else if,else,并在case内循环
出于我的问题的目的,我只包括案例1,但其他案例是相同的。 假设值当前为1,我们转到大小写1,我们的for循环遍历数组以查看每个元素是否与whatever_value变量匹配。 在这种情况下,如果确实如此,我们声明值变量等于2,并且我们突破循环。 问题是,当我突出显示另一个中断(在eclipse中)时,它表示中断也附加到for语句,但我只希望将for语句附加到if语句,而不是else if语句附加到好。 我想因为for语句没有括号,它只会为if语句循环,但eclipse会另外说(否则如果从0循环到数组长度)。
switch (value) { case 1: for (int i = 0; i < something_in_the_array.length; i++) if (whatever_value == (something_in_the_array[i])) { value = 2; break; } else if (whatever_value == 2) { value = 3; break; } else if (whatever_value == 3) { value = 4; break; } break; case 2: // code continues....
你的问题…..我认为你的for循环包含所有的if
, else if
东西 – 就像一个声明一样,就像hoang nguyen指出的那样。
改变这个。 请注意括号表示for循环操作的代码块,以及第一个else if
to if
。
switch(value){ case 1: for(int i=0; i
看起来像是一种家常的做事方式,但如果你必须……你可以根据自己的需要对其进行重组:
boolean found = false; case 1: for (Element arrayItem : array) { if (arrayItem == whateverValue) { found = true; } // else if ... } if (found) { break; } case 2:
如果你需要for
语句只包含if
,你需要删除它的else
,如下所示:
for(int i=0; i
但我只希望将for语句附加到if语句,而不是else if语句。
好吧,摆脱else
然后。 如果else if
不应该是for
一部分,那么将其写为:
for(int i=0; i
话说回来:
- 你真的想在这里做什么并不清楚
- 没有在循环中的
else
部分似乎在这里没有多大意义, - 很多人(包括我自己)认为总是使用大括号...这样人们在阅读代码时不会因错误的缩进而被绊倒。 (在这种情况下,它可能会帮助我们弄清楚你在这里真正要做的事情......)
最后,如果你把开口支架放在前一行的末端,那么支架就不那么突兀; 例如
if (something) { doSomething(); }
而不是:
if (something) { doSomething(); }