arrays - 我想知道在 for 循环中使用 list.length 和使用 var (int length = list.length) 之间的区别
问题描述
void main() {
List arr = [1, 2, 3, 4, 5];
int sums = 0;
List all = [];
int length = arr.length;
for (int i = 0; i < length; i++) {
for (int j = 0; j < /**/ length - 1 /**/; j++) {
if (arr[i] == arr[j]) {
print('removed $i = ${arr[j]}');
arr.removeAt(j);
}
print('$i = ${arr[j]}');
sums += arr[j];
}
all.add(sums);
sums = 0;
arr.clear();
arr = [1, 2, 3, 4, 5];
}
print(all);
}
上面的代码打印 [14, 13, 12, 11, 10]
但如果我使用arr.length-1
它打印 [9, 8, 7, 11, 10]
void main() {
List arr = [1, 2, 3, 4, 5];
int sums = 0;
List all = [];
int length = arr.length;
for (int i = 0; i < length; i++) {
for (int j = 0; j < /**/ arr.length - 1 /**/; j++) {
if (arr[i] == arr[j]) {
print('removed $i = ${arr[j]}');
arr.removeAt(j);
}
print('$i = ${arr[j]}');
sums += arr[j];
}
all.add(sums);
sums = 0;
arr.clear();
arr = [1, 2, 3, 4, 5];
}
print(all);
}
解决方案
推荐阅读
- verilog - 如何使用从文件中读取的字符串值
- python - 从整个数据框中排序前 10 个值,但不是 Python 中的单个列
- button - 带有 GPIO 事件检测的函数因未知原因而循环
- python - 我想根据用户输入计算平均值和标准偏差,但它说偏差函数中的数据类型错误
- mysql - MySQL bigint 显示问题
- javascript - 在操作 URL 上添加用户输入
- c# - Identity Server 4:请求与 DB 用户同步的密码令牌
- wordpress - 父/子/子页面的 add_rewrite_rule() 问题
- ios - didFinishLaunchingWithOptions 在窗口背景更改时崩溃
- ssis - SSIS单包部署删除其他包?