我无法理解为什么此代码的输出为 16。如果我的格式有误,我深表歉意,我是编码新手。我已经写了几次代码以确保我的格式正确x = 1while x < 10: x += xprint(x)为我打印的输出是 16。
2 回答

尚方宝剑之说
TA贡献1788条经验 获得超4个赞
对于我,这说得通。该语句x += x相当于x *= 2,加倍x。
为了帮助您理解,请x在每次迭代后尝试打印:
x = 1
while x < 10:
x += x
print(x)
输出:
2
4
8
16
在每一步:
2 # greater than 10? no
4 # greater than 10? no
8 # greater than 10? no
16 # greater than 10? yes, stop loop

沧海一幻觉
TA贡献1824条经验 获得超5个赞
也许更改 的位置print(x)可以帮助您:
x = 1
print(1)
while x < 10:
x += x
print(x)
输出:
1
2
4
8
16
如您所见,有一个共同的赞助人。每次迭代都会while复制之前的值x(这是由于x += x,可以解释为 x 的两倍)。
那么,条件while x < 10就很简单了。
1 # Less than 10. Keep looping.
2 # Less than 10. Keep looping.
4 # Less than 10. Keep looping.
8 # Less than 10. Keep looping.
16 # Greater than 10. STOP!
添加回答
举报
0/150
提交
取消