java - 为什么我不能在 for 循环条件中使用数学(减法)?

标签 java for-loop conditional-statements

我有两个字符串列表,listAlistBlistA 更长,我想通过向其添加空字符串来使 listB 具有相同的大小。

这个有效:

int diff = listA.size() - listB.size()
for (int i = 0; i < diff; i++) {
    listB.add("");
}

但这不是:

for (int i = 0; i < (listA.size() - listB.size()); i++) {
    listB.add("");
}

这是为什么?

最佳答案

第一个示例变量 diff常量,而第二个示例在循环的每次迭代中评估条件,因此由于您在迭代期间添加对象列表的大小会发生变化,因此两个代码片段不会做同样的事情。

我建议您继续使用第一种方法,即预先缓存循环条件的限制,而不是在每次迭代期间重新评估它。

关于java - 为什么我不能在 for 循环条件中使用数学(减法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47964444/

相关文章:

excel - 没有For VBA的下一个

java - 从java中的列表创建列表

c - i ["string"] 如何用作条件语句?

Java 接口(interface)泛型,返回类型取决于参数泛型

java - 不匹配子字符串的正则表达式

java - Spring集成拖尾多个文件

javascript - 使用不同的参数调用 javascript 函数,具体取决于我所在的页面

java - 如何使用数组来验证另一个数组中的元素长度?

C++:索引超出范围

css - 合并 CSS IE 调用