嵌套因为在java中没有按预期工作

时间:2015-02-09 18:21:15

标签: java c# c++ for-loop

我想总结两个不同列表的元素。

我的测试列表中的

1包含1和2 列表2包含3和4。 我想像这样总结列表1和列表2的元素: 1 + 3,1 + 4,2 + 3,2 + 4。

我已尝试过以下代码, 但它不起作用。

我的代码:

    for (int i = 0; i < l1.size(); i++) {
        for (int j = 0; j < l2.size(); j++) {
            System.out.println( l1.get(i) + l2.get(i) );
        }
    }

我的输出始终显示

5
5
5
5
如果我错了或错过了逻辑,请帮助并纠正我。

1 个答案:

答案 0 :(得分:2)

你必须在某个时候使用j,你应该能够自己弄清楚

这是一个非常常见的错误,我猜起家,因为使用&#34; i&#34;成为一个毫无疑问的习惯

要避免此问题,您可以开始使用其他命名模式

例如。在迭代列表时将它们称为it1和it2,在遍历坐标时将它称为x y,这样你就知道你打算用它们做什么了

这也可以提高很多可读性, 如果你必须改进一个复杂的嵌套,你就会诅咒不使用更好的名字

您可能要考虑使用重构(在eclipse strg + 1和&#34;在文件&#34中重命名;)以便在之后为迭代器提供更有意义的名称,或者如果您在算法中途遇到混淆