[請益] 迴圈continue的問題

看板PHP作者 (貢貢老盃)時間15年前 (2010/12/21 14:10), 編輯推噓1(1014)
留言15則, 5人參與, 最新討論串1/2 (看更多)
我最近才剛從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

12/21 14:12, , 1F
break;//放棄 continue;//繼續
12/21 14:12, 1F

12/21 14:14, , 2F
遇到continue就重做了,哪還會$i++
12/21 14:14, 2F

12/21 14:15, , 3F
To 2F:我的確也這麼認為,直到我在switch前加上echo $i
12/21 14:15, 3F

12/21 14:15, , 4F
才發現$i還是照加上去XD
12/21 14:15, 4F

12/21 15:12, , 6F
上面網址太長 重貼http://ppt.cc/WO((
12/21 15:12, 6F

12/21 15:13, , 7F
php continue直接用在switch裡會當作break
12/21 15:13, 7F

12/21 15:14, , 8F
了解了~我再來去試一下~感恩+_+
12/21 15:14, 8F

12/21 15:44, , 9F
OK了~原來switch要慎用continue和break!!
12/21 15:44, 9F

12/21 16:30, , 10F
執行switch會比複合式if elseif 還要快!!
12/21 16:30, 10F

12/21 21:46, , 11F
但是如果有100個複合條件,寫switch會死人。
12/21 21:46, 11F

12/21 22:11, , 12F
那若有100個...就寫if比較快嗎?
12/21 22:11, 12F

12/21 22:12, , 13F
若用$($XXX)來當if的判斷,似乎比較活一點~不過目前沒這需
12/21 22:12, 13F

12/21 22:12, , 14F
求XDD
12/21 22:12, 14F

12/22 10:30, , 15F
當然是……用陣列!重構的書就有提到這一點。
12/22 10:30, 15F
文章代碼(AID): #1D44JF8O (PHP)
討論串 (同標題文章)
文章代碼(AID): #1D44JF8O (PHP)