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