在普通的嵌套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编程。
非常感谢,
答案 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 < 3
,j
循环将只执行一次。
方法方法大致如下:
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
}
}
您可能希望将方法设为静态或私有,或删除参数,或添加返回类型等。很难说只是问题中的代码。