抱歉,我是使用IDLE,我真的是新手 对于程式的问题描述不是很好
我第一次执行这个程式是正常的,他可以回传我如期的结果 如下
https://i.imgur.com/mcNumvB.jpg
但当我连续执行第二次,则进入无限循环,如下
https://i.imgur.com/VExBbOg.jpg
※ 引述《MOONY135 (谈无欲)》之铭言:
: ※ 引述《TW185930 (吱吱)》之铭言:
: : 各位大大们好
: : 小弟新手学python,使用参考书为[python 程式设计超入门]
: : 目前看到While循环章节,并尝试练习此函数遇到一个小问题
: : 程式内容为
: : Power = 5
: : while(True):
: : print('打')
: : print('踢')
: : print('大绝')
: : Power = Power - 1
: : if (Power > 0):
: : break
: : 理论上当Power变成负值时,则会变成 Power > 0 为False,
: : 那么循环就会break,可是为何小弟进入了无限循环呢QQ?
: : 不太懂QQ
: 你的写法跟你的想法完全不一样
: 你这样只会印第一次 而且Power =4
: if(Power >0):
: break;
: 你第一次进去就等于结束了 不会有啥无穷循环这件事情
作者: Scinfaxi (Scinfaxi) 2018-06-02 15:23:00
你POWER设定2 减了两次1就等于0 0不会>0所以不会BREAK理论上你应该是写if power < 0: break才比较符合你想法
作者: Scinfaxi (Scinfaxi) 2018-06-02 15:25:00
因为你第一次执行 POWER = 1 1>0所以BREAK了...
但我第二次重新输入同样的while (True) ,却进入循环XD
作者:
s8300355 (s8300355)
2018-06-02 15:26:00因为已经是0了拔
作者: kk6401allen (LYY) 2018-06-02 15:49:00
power<=0后,if的条件不成立,while就不会break
你先用纸笔 把每次循环执行的逻辑跟变量状态纪录下来,自己手动把循环写完。这种程度的bug刚好是练习的好机会
原 Po应该有一个地方误会了 你的 while(True) 这边的意思是我的 while永远会执行 因为它就是指名(while)的判断永远是 True而后面的 if不管怎样搞 他的判断是只会是 if的 永远不会影响 while第一次会停下来 只是因为遇到 break跟任何的判断 TrueFalse没有半点关系 你可以试试看吧 break拿掉把 print大绝放进去看看结果