我不明白循环w/范围..。
...in的问题1,问题2的答案是混乱的.
问题1:以下代码段末尾的j值是多少?
j = 0
for i in range(0, 4):
j = j + i问题2:
j = 0
for i in range(1, 10):
if j < 10 :
j = j + i问题1:
答覆:6
J= (j+1)+(j+2)+(j+3)
问题2:
答: 10
我的回答是?
为什么不是j=(j+1)+(j+2).(j+9)?
(我不明白这里"if j<10“的表达式是什么。)
发布于 2019-07-25 17:38:36
j = 0
for i in range(1, 10):
if j < 10 :
j = j + i外部" for“循环一直执行,直到它耗尽i的范围为止。在每个外循环上,j被求值以查看它是否小于10。如果是,j在该循环上增加i的值。在第四个循环中,j变成10,并在其余的执行过程中保持该值。
loop j i j(end)
1 0 1 1
2 1 2 3
3 3 3 6
4 6 4 10
5 10 5 10
6 10 6 10
7 10 7 10
8 10 8 10
9 10 9 10
<end>发布于 2019-07-25 17:32:28
我想你对死刑的执行顺序有误解。循环的每一次迭代都会对语句if j < 10 :进行评估。因此,在第4次迭代之后,由于if语句为false,j不会增加。
发布于 2019-07-25 17:32:24
这是一个简单的逻辑问题。在问题2中,只有当j =j + i被执行时才会执行j < 10
在第一次运行之后,我们有j= (j+1) =1(因为j最初是0)。
第二次运行后,我们有j= (j+1) + (j+2) =3
第四次运行后,j= (j+1) + (j+2) + (j+3) + (j+4) = 10
由于j不再小于10,if条件意味着此时不再向j添加进一步的i。
https://stackoverflow.com/questions/57207280
复制相似问题