java - 嵌套未按预期在 Java 中工作

标签 java c# c++ for-loop

<分区>

我想对 2 个不同列表的元素求和。

在我的测试列表中 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

如果我错了或者逻辑不对,请帮助和纠正我。

最佳答案

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

我猜这是初学者的一个非常常见的错误,因为使用“i”已成为一种毋庸置疑的习惯

为了避免这个问题,你可以开始使用另一种命名模式,

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

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

你可能想考虑使用重构(在 eclipse strg+1 和“在文件中重命名”)之后给迭代器一个更有意义的名字,或者如果你在算法中途甚至事先感到困惑

关于java - 嵌套未按预期在 Java 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416622/

相关文章:

java - Keycloak.enabled = false - 返回状态 500 内部错误

java - JSONException : Unterminated string

c# - 是否有一种通用的 DDD 模式来处理域对象的欠载?

c++ - 在 GPU 上调用函数时可以避免使用 __device__ 限定符吗?

java - 我需要使用 Java 8 Optional 方法来获取包装值,或者调用 void return Consumer lambda

java - ColdFusion 的最佳 Java EE 服务器

c# - new Action(() => someCombobox.Text = "x"有什么问题)

c# - 更新 PictureBox 时什么可能导致 ArgumentException?

c++ - 如何将Win Mobile 6项目转换为Win CE 6.0 RC2

c++ - 从自定义链接列表打印值时陷入无限 while 循环