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