Java 将4个for循环转换为1个

Java 将4个for循环转换为1个,java,eclipse,for-loop,calculator,Java,Eclipse,For Loop,Calculator,我想知道我是否可以得到一些帮助或提示,使这个for循环更加复杂。而不是有3个不同的循环,我正试图使他们成为一个。我似乎无法修复它,我已经尝试过谷歌搜索并自己修复它。如果你能看一看,我将非常感激 //noob程序员 for(int i = 0; i < 4; i++) row[1].add(button[i]); row[1].add(button[14]); add(row[1]); for(int i = 4; i < 8; i

我想知道我是否可以得到一些帮助或提示,使这个for循环更加复杂。而不是有3个不同的循环,我正试图使他们成为一个。我似乎无法修复它,我已经尝试过谷歌搜索并自己修复它。如果你能看一看,我将非常感激

//noob程序员

    for(int i = 0; i < 4; i++) 
        row[1].add(button[i]);
    row[1].add(button[14]);
    add(row[1]);


    for(int i = 4; i < 8; i++)
        row[2].add(button[i]);
    row[2].add(button[15]);
    add(row[2]);

    for(int i = 8; i < 12; i++)
        row[3].add(button[i]);
    row[3].add(button[16]);
    add(row[3]);
    row[4].add(button[18]);

    for(int i = 12; i < 14; i++)
        row[4].add(button[i]);
    row[4].add(button[17]);
    add(row[4]); 
比如:

    for (int r = 0; r < 4; r++) {
        for (int i = 4 * r; i < 4 * r + 4; i++)
            row[r + 1].add(button[i]);
        row[r + 1].add(button[r + 14]);
        add(row[r + 1]);
    }

显然,这缺少第[4]行。addbutton[18];但不管怎样,这看起来是假的。

假设顺序真的很重要,我认为至少需要两个循环;大概

row[4].add(button[18]);
for (int i = 0; i < 14; i++) {
    int ndx = 1 + (i / 4);
    row[ndx].add(button[i]);
}
for (int i = 1; i < 5; i++) {
    row[i].add(button[13 + i]);
    add(row[i]);
}

应等同于以相同顺序添加到一行的所有按钮以及添加的所有行。

我投票将此问题作为离题题结束,因为有关改进工作代码的问题属于@Andreas,这看起来像示例代码,缺乏具体上下文。关于代码审查,这将是一个离题的话题,而且会很快结束。@Andreas-同意Zeta的观点:在CR上推荐OP帖子是可以的,但在将来,请不要以代码审查作为结束问题的理由。评估请求并使用一个理由,比如过于宽泛,主要是基于意见的,等等。然后你可以向OP提到,如果是,它可以发布在代码审查上。请参阅“不应该做什么”一节,因为第四个循环只计算到14,而不是16,并且由于这个伪按钮[18],问题只是要求合并前三个循环,而不是全部四个循环。这是我的猜测。每个for循环都是计算器上的每一行。我有4行,我看到我的问题是错误的,所以我编辑了那个。它很有效,非常感谢!