看板 Perl 關於我們 聯絡資訊
※ 引述《liyih ()》之銘言: : 參考文件 : 1. http://perldoc.perl.org/functions/do.html : 2. http://perldoc.perl.org/perlsyn.html : 3. http://en.wikipedia.org/wiki/Perl_control_structures : ... : do BLOCK does not count as a loop, so the loop control statements next, : last, or redo cannot be used to leave or restart the block. See perlsyn for : alternative strategies. : ... : 以下的寫法或許可以,不過有明確的方式和條件來結束迴圈結構會比較適當。 : LOOP: { : do { : last LOOP; : } while (1); : } 根據官方說法 所以我改寫成以下寫法 #!/usr/bin/perl $i=0; do { $i++; print "Hello\n"; last if($i>0); }while(1) #還是失敗 最後我試了 #!/usr/bin/perl $i=0; Loop: { if($i < 5) { do { $i++; printf "Hello\n"; last Loop; }while(1); } } #可以跳出來~ 但是沒有做到五次 再換成 Loop: { do { $i++ print "Hello\n"; if($i>5) { last Loop; } }while(1) } #成功 所以這表示用do while的無窮迴圈 基本上除了在while設條件 不然就是得在內部寫條件配合Label才可以跳出 這應該可以算是一個BUG吧~ :P 想不出為啥會失去功能~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.53.115
icemango:請看上一篇 ... do BLOCK 不當成迴圈 11/20 00:43
windincloud:看來我誤解COUNT這單字的用法 :P 11/20 00:59