评估循环时的思考过程是什么?我真的不知道shell如何获得这些答案(A
:12
,B
:2
,C
:4
,{{ 1}}:D
)。
6
答案 0 :(得分:3)
如果你把它分解,也许你可以更容易地阅读它:
A = 0
while A <= 10:
A += 2
你能读到这个吗?你明白它是如何进入12
的吗?
A, D = 0, 0
while A <= 10:
A += 2
D += 1
同样包括D
也不应该让它变得更难。
你能自己阅读并理解if
- 陈述吗?
if A%3 == 0:
B += 1
else:
C += 1
它何时进入循环?
A, B, C, D = 0, 0, 0, 0
while A <= 10:
A += 2
if A%3 == 0:
B += 1
else:
C += 1
D += 1
B
和C
相关;其中只有一个在每次迭代中递增,因此它们应该与D
相加,就像它们一样。
您现在阅读和理解这个问题了吗? :)
答案 1 :(得分:2)
其他答案都很好。我强烈建议您用笔和纸来处理事情,以确保您了解正在发生的事情。
在循环中使用print
对于查看程序运行时发生的情况也很有用。
A,B,C,D = 0,0,0,0
while A <= 10:
A += 2
if A%3 == 0:
B += 1
else:
C += 1
D += 1
print "A =", A, " B =", B, " C =", C, " D =", D
输出显示每次循环迭代结束时A, B, C, D
的值。
A = 2 B = 0 C = 1 D = 1
A = 4 B = 0 C = 2 D = 2
A = 6 B = 1 C = 2 D = 3
A = 8 B = 1 C = 3 D = 4
A = 10 B = 1 C = 4 D = 5
A = 12 B = 2 C = 4 D = 6
你可以看到:
A
每次循环迭代增加2
B
增加1
IF A
可被3
整除,即A%3 == 0
C
增加1
如果 A
NOT 可被3
D
每次循环迭代增加1
当谈到循环时,您可以将缩进代码的集合视为单个&#34; chunk&#34;每次重复循环时执行一次的代码。此代码块的正式术语是block。它也适用于if
/ else
语句。
答案 2 :(得分:1)
while
循环的主体将执行6次(A=0,2,4,6,8,10
)。
A
增加2,因此在第一个语句之后
在循环中,它具有值2,4,6,8,10,12
。B
增加两倍(A=6
和A=12
时); C
的其余值,A
会加1。D
每次循环都会递增。因此,在循环之后,A=12
,B=2
,C=4
和D=6
。