我在循环中有变量访问权限。但是有两个循环。
这是我的代码:
int x = 0;
int xx = 0;
for (int d1 = 0; d1 < d - 1; d1++) {
for (int d2 = d1 + 1; d2 < d; d2++) {
//--other code---
x = listt.indexOf(max);
xx = list2.indexOf(max2);
}
}
当我像这样访问变量时,我得到了最后一个值。
int x = 0;
int xx = 0;
for (int d1 = 0; d1 < d - 1; d1++) {
for (int d2 = d1 + 1; d2 < d; d2++) {
//--other code---
x = list.indexOf(max);
xx = list2.indexOf(max2);
}
}
System.out.println(" " + x);
System.out.println(" " + xx);
所采取的值是最后一个值。如何在所有循环外访问变量以获取所有值?反正有没有获得所有价值?我尝试过使用getter和setter方法,但值仍然是这样的。
先谢谢。
答案 0 :(得分:3)
如果您希望记录x
和xx
变量中的每个更改,您应该将它们存储在某些数据结构中。
例如,在ArrayList中:
int x = 0;
int xx = 0;
List<Integer> xHistory = new ArrayList<>();
List<Integer> xxHistory = new ArrayList<>();
for (int d1 = 0; d1 < d - 1; d1++) {
for (int d2 = d1 + 1; d2 < d; d2++) {
//--other code---
x = list.indexOf(max);
xx = list2.indexOf(max2);
xHistory.add(x);
xxHistory.add(x);
}
}
现在,您可以遍历这两个列表以恢复循环期间所有值x
和xx
,或者只是打印整个列表:
System.out.println(xHistory);
System.out.println(xxHistory);