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をアトムの値に設定すると、それはiを取り、それを初期値の20に設定するだけですか?そして、そこからiの値を調整するたびに、それ自体のバージョンの20が削除され、アトムの値を変更すると、それも独自の値になります。それで、私が原子から引くとき、それは私からも引かれていませんか?このプログラムは正しく書かれていて正しく動作するので、それが私がそれを理解できる唯一の方法ですが、その部分は私を混乱させます。

よろしくお願いします!

4

3 に答える 3

0

はい、あなたはあなた自身の質問に答えました。変数iatomsは2つの別個のインスタンスです。

ループを開始する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 に答える