看板 PHP 關於我們 聯絡資訊
我最近才剛從ASP轉過來PHP, 看了2本書,裡頭都提到continue指令會放棄該次迴圈 回到迴圈頭執行,而不會理會continue以後的指令.. 我昨天在寫時碰到了一個情況 $i=1; while (XXXX) { switch (OOOO) { case '00': XXXXXXX; case '11' OOOOOOO; case '99' continue; default: XXXXXXXX; } $i++; } 照理說,只要跳到case '99' 就會回到迴圈頭,而$i不會自動+1 但是我在switch前插入一行 echo $i.','; 則不會出現:1,2,3,4,5,6,7,8,9,....... 而是會出現:1,2,3,4,6,7,8,9,..... 我要讓他跑的資料中,第五筆的確是case '99' 為什麼$i還是會自動+1呢 直到我把$i++;放到每個case裡,除了case '99'之外才正常運作 是我誤會continue的用法了嗎?? -- ◤◢ ▁◢ 請‧尊‧重‧生‧命 ◢◤ 以 認 養 代 替 購 買 ◤◢ ◢◤ 請領養我 以 絕 育 代 替 撲 殺 ◤◢ 請領養我 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ Blog:http://Unifish.Pixnet.net/ 本BLOG謝絕挖隱私魔人 QSWEET -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.192.74
terrybob:break;//放棄 continue;//繼續 12/21 14:12
mattttt:遇到continue就重做了,哪還會$i++ 12/21 14:14
UniFish:To 2F:我的確也這麼認為,直到我在switch前加上echo $i 12/21 14:15
UniFish:才發現$i還是照加上去XD 12/21 14:15
tn801534:上面網址太長 重貼http://ppt.cc/WO(( 12/21 15:12
tn801534:php continue直接用在switch裡會當作break 12/21 15:13
UniFish:了解了~我再來去試一下~感恩+_+ 12/21 15:14
UniFish:OK了~原來switch要慎用continue和break!! 12/21 15:44
terrybob:執行switch會比複合式if elseif 還要快!! 12/21 16:30
tkdmaf:但是如果有100個複合條件,寫switch會死人。 12/21 21:46
UniFish:那若有100個...就寫if比較快嗎? 12/21 22:11
UniFish:若用$($XXX)來當if的判斷,似乎比較活一點~不過目前沒這需 12/21 22:12
UniFish:求XDD 12/21 22:12
tkdmaf:當然是……用陣列!重構的書就有提到這一點。 12/22 10:30