切换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循环包含所有的ifelse if东西 – 就像一个声明一样,就像hoang nguyen指出的那样。

改变这个。 请注意括号表示for循环操作的代码块,以及第一个else if to if

 switch(value){ case 1: for(int i=0; i 

在这种情况下,我建议使用中断标签。

http://www.java-examples.com/break-statement

这样你就可以在for循环之外专门调用它。

看起来像是一种家常的做事方式,但如果你必须……你可以根据自己的需要对其进行重组:

 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(); }