如何在java中使用两个循环访问外部变量

时间:2015-11-15 12:04:33

标签: java loops variables

我在循环中有变量访问权限。但是有两个循环。

这是我的代码:

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方法,但值仍然是这样的。

先谢谢。

1 个答案:

答案 0 :(得分:3)

如果您希望记录xxx变量中的每个更改,您应该将它们存储在某些数据结构中。

例如,在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);
    }
}

现在,您可以遍历这两个列表以恢复循环期间所有值xxx,或者只是打印整个列表:

System.out.println(xHistory);
System.out.println(xxHistory);