【问题标题】:Is it possible to add conditional for loop in nested ones?是否可以在嵌套循环中添加条件 for 循环?
【发布时间】:2017-01-12 01:49:23
【问题描述】:

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

例如,在下面这样的代码中,当第一个循环的 int i 为

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
        }
    }
}

这样只有当i

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

我之所以要这样做是因为最里面的代码和for循环的数量一样长(大约嵌套了10个),真的不想再重复它们了。我可以考虑用方法来做这件事,但是我对方法和OO编程不是很熟悉。

非常感谢,

【问题讨论】:

    标签: java for-loop


    【解决方案1】:

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

    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 &lt; 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
        }
    }
    

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

    【讨论】:

    • 有助于阅读问题(也有助于提出一个好问题)。
    • @TimBiegeleisen 嗨,我在这个问题上有什么做得不好的地方吗?如果需要,我会编辑:D
    • @shmosel 嗨,感谢您的帮助。如果您能指导我使用方法,那就更好了。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    相关资源
    最近更新 更多