作为一个新手,我很抱歉,但为什么这个循环会永远运行呢?
for i in range (1,3):
while i < 5:
print ('ha')
作为一个新手,我很抱歉,但为什么这个循环会永远运行呢?
for i in range (1,3):
while i < 5:
print ('ha')
您的代码基本上是在执行以下操作:
对于 1、2 和 3 中的每个值,请执行以下操作:当当前值小于 5 时,打印 'ha'
如您所见,该值将从 1 开始,当 1 小于 5 时,将打印“ha”。由于该值未更新,1 将始终小于 5,因此您将获得无限的 'ha's
while
您可能将声明与if
声明混淆了
这更有意义:
对于 1、2 和 3 中的每个值,请执行以下操作:如果当前值小于 5,则打印 'ha'
给初学者的提示:总是尝试用你的自然语言读/写你的算法,然后尝试用计算机语言对其进行编程。确实,编程语言很难,因为它们正在演变为更人性化的形式,并且它们需要您进行更多的数学思考和更有条理的思考
for i in range(1, 3)
表示它以数字开头1
。
你说的是数字 1:
while 1 < 5:
print('ha')
这将永远持续下去,因为一小于五,而且永远都是。
因此 for 循环永远不会到达2
and 3
,因为它还没有完成1
。
您不会i
在循环内部进行修改while
,因此如果循环条件为真,它将始终为真。也许你的意思是if
,不是while
。
因为 while 也定义了一个循环。代码正在构建所谓的嵌套循环。与 for 循环不同,while 循环不会更新迭代器变量(实际上 while 循环上没有迭代器,只有一个条件),并且由于循环体不会改变条件,所以 i < 5 始终为真,而 while循环是无限的。
也许你想要一个 if 操作而不是一个嵌套循环?
for i in range (1,3):
if i < 5:
print ('ha')