是否可以在嵌套的循环中添加条件for循环?

时间:2017-01-12 01:49:24

标签: java for-loop

在普通的嵌套for循环中,是否可以设置一个条件来确定是否在嵌套循环中运行特定的for循环?

例如,在下面的代码中,当第一个循环的int i是<时,可以跳过第二个for-statement(int j)。 3?

for(int i = 0; i < 5; i++) {
    for(int j = 0; j < 3; j++) {
        for(int k = 0; k < 9; k++) {
            //hell a lot of codes
        }
    }
}

所以只有当我&lt; 3,实际执行的代码是这样的吗?

for(int i = 0; i < 5; i++) {
    for(int k = 0; k < 9; k++) {
        //hell a lot of codes   
    }
}

我想要这样做的原因是最里面的代码和for循环的数量一样长(大约10个嵌套),并且真的不想再重复它们。我可以想到用方法做这个,但我不太熟悉方法和OO编程。

非常感谢,

1 个答案:

答案 0 :(得分:4)

通常,我可能会将代码提取到单独的方法中。但如果您不想这样做,这是一个解决方法:

for(int i = 0; i < 5; i++) {
    for(int j = 0; j < (i < 3 ? 1 : 3); j++) {
        for(int k = 0; k < 9; k++) {
            //hell a lot of codes
        }
    }
}

这样,如果i < 3j循环将只执行一次。

方法方法大致如下:

void outer() {
    for(int i = 0; i < 5; i++) {
        if(i < 3) {
            inner(i, 0);
        } else {
            for(int j = 0; j < 3; j++) {
                inner(i, j);
            }
        }
    }
}

void inner(int i, int j) {
    for(int k = 0; k < 9; k++) {
        //hell a lot of codes
    }
}

您可能希望将方法设为静态或私有,或删除参数,或添加返回类型等。很难说只是问题中的代码。