2

我在 Java 中有这段代码

for (int j = 0; j < 8; j++) 
        {
            Boton[1][j].setIcon(PeonN);
            Peon PeonNegro = new Peon('N');
            Boton[6][j].setIcon(PeonB);
        }

这是针对国际象棋的,我希望每个新对象都有循环的编号,在不创建数组的情况下独立使用它,有类似的东西

for (int j = 0; j < 8; j++) 
            {
                Boton[1][j].setIcon(PeonN);
                Peon PeonNegro+i = new Peon('N');
                Boton[6][j].setIcon(PeonB);
            }

所以我会有 PeonNegro0、PeonNegro1 等等......

4

2 回答 2

0

如果没有数组或Collection. (在 Java 中,很难使用动态变量名)。您必须声明类似数组或ArrayList在 for 循环之外的内容,如下所示。

Peon[] peons = new Peon[8];
for (int j = 0; j < 8; j++) 
{
    Boton[1][j].setIcon(PeonN);
    peons[j] = new Peon('N');
    Boton[6][j].setIcon(PeonB);
}

// So we can access a single peon like this
Peon p3 = peons[3];

// Or iterate over all peons and get the cycle number like this
for (int cycle_num = 0; cycle_num < 8; cycle_num++) {
    Peon peon = peons[cycle_num];

    // Do something with peon and cycle_num here

}
于 2013-04-18T01:30:02.867 回答
0

这不是 JAVA 的工作方式。如果您想要一个连续的变量列表,您的选择是使用数组或其中一个Collection对象。变量不能动态命名。

此外,值得注意的是,由于您在循环中声明了该变量for,因此该变量只能在循环的下一次迭代之前访问。也就是说,你甚至不能在循环之外使用变量,所以没有理由给它们编号。

于 2013-04-18T01:26:30.457 回答