一个非常简单的例子:
n=1
a=n
x=1
y=a+1
while (y-x) <10:
n+=1
print(x,y)
print(n,a)
这将进入无限循环:
x= 1 y= 2
n= 2 a= 1
x= 1 y= 2
n= 3 a= 1
x= 1 y= 2
n= 4 a= 1
x= 1 y= 2
n= 5 a= 1
x= 1 y= 2
n= 6 a= 1
x= 1 y= 2
n= 7 a= 1
如您所见,循环正在更新n
,但可以调用a
,但n
未更新为更新的y
值。我想知道为什么会这样。如果n+1
只是System.setProperty("webdriver.gecko.driver", ".\\WebDrivers\\geckodriver.exe");
,就属于这种情况。
答案 0 :(得分:5)
int
个对象的操作(+=
此处)总是创建一个新的整数对象,它不会改变以前的值。因此,尽管n
分配,a
的更改仍未反映在a = n
中。
每次更改a
的值时,您需要将n
重新绑定到n
:
while (y-x) <10:
n += 1
a = n