Java中的变量值
我有一个关于变量值如何工作的快速问题。我现在正在做一个项目,看起来是这样的:Java中的变量值,java,variables,coding-style,Java,Variables,Coding Style,我有一个关于变量值如何工作的快速问题。我现在正在做一个项目,看起来是这样的: 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)
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开始,然后当我改变原子的值时,它也有它自己的值。所以当我从原子中减去时,这不也是从I中减去的吗?这是我能理解它的唯一方法,因为这个程序是正确编写和运行的,但这部分让我感到困惑
提前非常感谢您的帮助 一旦设置i=atoms的值,它就不再改变。它是循环初始值设定项,将不再被处理 “i”当然会不断递减(因为i-递减)
但是您可以将原子的值更改为任意值,结果不会更改。
i=atoms
是for
循环中的初始化。因此,接下来,i
的值独立于原子
是的,您已经回答了您自己的问题。变量i
和atoms
是两个独立的实例
启动循环时,您将
i
设置为与原子相同的值,但它们仍然是独立的变量。因此,在循环内部,当您更改一个的值时,它不会影响另一个。在第一次循环迭代之前,您正在使用atoms
初始化i
。进入循环后对atoms
的任何更改都不会对i
产生影响。在初始化之后,i
和atoms
完全独立存在,它们之间没有“通信”。i--
不会改变atoms
的值。这就是我的想法,但我只是有点困惑,因为当我看到它写为i=atoms时,当我改变原子的值时,它也会改变I的值。非常感谢你澄清这一点!