0

关于变量值如何工作的值,我有一个简短的问题。我现在正在开发一个程序,它看起来像这样:

public void run() {

    println("There are " + ATOMS + " initially.");

    int atoms = ATOMS;
    int year = 0;

    while (atoms > 0) {

        for (int i = atoms; i > 0; i--) {

            println(i);
            if( rgen.nextBoolean() ) {
                atoms--;
                println("The total atoms is " + atoms);
            }

            println("The total for i is " + i + "\n"  );

        }

         year++;

         println("There are " + atoms + " at the end of year " + year );
    }

}

在带有 for 循环的部分,并将变量 i 设置为原子的值,这让我感到困惑。假设原子的值从 20 开始。它通过 for 循环并假设第一次通过 RandomGenerator 使其成为真的。所以从原子中减去 1。然后,由于 i-- 的存在,i 的值也应该被减去。所以我的问题是:当我将变量 i 设置为 atom 的值时,是否只需要 i 并将其设置为初始值 20?然后从那里每次我调整 i 的值时,它都会脱离自己的 20 版本,然后当我改变 atom 的值时,它也有自己的值。所以当我从原子中减去时,那不是也从 i 中减去吗?这是我能理解它的唯一方法,因为该程序已编写并且可以正常工作,但那部分让我感到困惑。

非常感谢您的帮助!

4

3 回答 3

0

是的,您已经回答了自己的问题。变量iatoms是两个单独的实例。

当您启动循环时,您设置i的值等于相同的值,atoms但它们仍然是单独的变量。因此,在循环内部,当您更改其中一个的值时,它不会影响另一个。

于 2013-02-04T17:36:17.190 回答
0

一旦你设置了 i=atoms 的值,它就不再改变了。它是循环初始化器,将不再被处理。

“i”当然会不断递减(因为 i--递减)。

但是您可以将原子的值更改为任何值,结果不会改变。

于 2013-02-04T17:28:00.003 回答
0

i=atomsfor循环中的初始化。于是乎,i独立于 的值atoms

于 2013-02-04T17:29:58.617 回答