将四个循环'for'合并为一个具有不同内部方法的循环

时间:2015-05-01 13:30:19

标签: java if-statement for-loop

我在Java中有四个几乎相同的循环,使用不同的方法:

int Point;
for (int i = 0; i < 10; i++)
{
    if (isLeft())
         Point = i;    
}

for (int i = 0; i < 10; i++)
{
    if (isRight())
         Point = i;
}

for (int i = 0; i < 10; i++)
{
    if (isAbove())
         Point = i;
}

for (int i = 0; i < 10; i++)
{
    if (isUnder())
         Point = i;
} 

我可以将所有循环合并到一个吗?

3 个答案:

答案 0 :(得分:1)

您可以使用||运算符链接条件:

for (int i = 0; i < 10; i++) {
    if (isLeft() || isRight() || isAbove() ||isUnder()) {
        Point = i;
    }
}

答案 1 :(得分:1)

如果希望保留当前控制流,则无法合并循环。

目前:

  1. 所有四个函数分别运行10次
  2. isRight将不会被调用,直到isLeft将不再被调用,等等。
  3. PointisUnder的结果比isAbove等更强大的功能。
  4. 您可以考虑在||语句中使用if,但我认为您可能会引入错误,当然假设代码当前按预期运行。

答案 2 :(得分:0)

不太确定你要做什么,因为所有的条件似乎都会改变指向迭代器的最后一个值9的值。 但是下面的代码段可以让你这样做。

for (int i = 0; i < 10; i++){
    if (isLeft())
        int Point = i;
    if (isRight())
        int Point = i;
    if (isAbove())
        int Point = i;
    if (isUnder())
        int Point = i;
}

另一个版本将联合所有条件

for (int i = 0; i < 10; i++) {
    if (isLeft() || isRight() || isAbove() ||isUnder()) {
        Point = i;
    }
}