基于外循环决定哪些内循环应该运行多次

时间:2017-10-03 20:29:36

标签: java loops

以下是一个例子,例如我有3个嵌套循环和第4个外循环,基于第4个外循环,我想决定内循环运行多少次(我希望内循环运行1或50(x))。

因此,由于外部循环从0到2,我希望它使最内部循环变为50次(x),然后两个外部循环变为一次,然后在1上我希望最内部循环再次变为50次第二个最外面也是50次,第三个最外面1次,然后最后一次,当i = 2时,我希望所有3次去50次。

int x=50;

for(int i=0; i<3; i++){
    for(int j=0; j<x; j++){ //go 50 times when i = 2
        for(int k=0; k<x; k++){ //go 50 times when i=1 or 2
            for(int l=0; l<x; l++){//always go 50 times
            }
        }
    }
}

3 个答案:

答案 0 :(得分:2)

你暴露问题的方式让人很难理解。

根据我的理解和社区的评论,这是我的贡献,以帮助您实现目标。

int x=50;

for(int i = 0; i < 3; i++){
    //go 50 times when i = 2, jsut 1 time otherwise
    int maxJ = i == 2 ? x : 1;
    for(int j = 0; j < maxJ; j++ ){
        //go 50 times when i=1 or 2, go 1 time otherwise
        int maxK = i == 1 || i == 2 ? x : 1;
        for(int k = 0; k < maxK; k++){
            //always go 50 times
            for(int l = 0; l < x; l++){
            }
        }
    }
}

for循环的第三个参数中,我们决定如何递增计数器。因此,我们可以将代码更改为:

// if i == 2, then increment by one.
// else, increment by x (running one time)
for(int j = 0; j < x; j = i == 2 ? j + 1 : j + x )

答案 1 :(得分:0)

在每个循环之前使用if(i == what what)x = 50或者你想要的东西

答案 2 :(得分:-1)

你需要这样的东西吗?

int x=50;
iloop:for (int i = 0; i < 3; i++) 
    {
    for (int j = 0; j < x ; j++) 
        {
            if(j>0 && i!=2)
                continue iloop;
        for (int k = 0; k < x ; k++)
            {
            for (int m = 0; m < x ; m++)
                {
                    if(i==0 && m==(x-1))
                        continue iloop;
                }                   
            }
        }
    }