Re: [问题] while循环问题

楼主: TW185930 (吱吱)   2018-06-02 15:21:53
抱歉,我是使用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才比较符合你想法
楼主: TW185930 (吱吱)   2018-06-02 15:24:00
可是为什么我第一次执行 却能break
作者: Scinfaxi (Scinfaxi)   2018-06-02 15:25:00
因为你第一次执行 POWER = 1 1>0所以BREAK了...
楼主: TW185930 (吱吱)   2018-06-02 15:25:00
但我第二次重新输入同样的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
作者: potter1529 (宋代才女唱元曲)   2018-06-03 17:39:00
你先用纸笔 把每次循环执行的逻辑跟变量状态纪录下来,自己手动把循环写完。这种程度的bug刚好是练习的好机会
作者: anticrime (黑熊)   2018-06-07 14:22:00
原 Po应该有一个地方误会了 你的 while(True) 这边的意思是我的 while永远会执行 因为它就是指名(while)的判断永远是 True而后面的 if不管怎样搞 他的判断是只会是 if的 永远不会影响 while第一次会停下来 只是因为遇到 break跟任何的判断 TrueFalse没有半点关系 你可以试试看吧 break拿掉把 print大绝放进去看看结果

Links booklink

Contact Us: admin [ a t ] ucptt.com