作者UniFish (貢貢老盃)
看板PHP
標題[請益] 迴圈continue的問題
時間Tue Dec 21 14:10:20 2010
我最近才剛從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
1F:推 terrybob:break;//放棄 continue;//繼續 12/21 14:12
2F:→ mattttt:遇到continue就重做了,哪還會$i++ 12/21 14:14
3F:→ UniFish:To 2F:我的確也這麼認為,直到我在switch前加上echo $i 12/21 14:15
4F:→ UniFish:才發現$i還是照加上去XD 12/21 14:15
7F:→ tn801534:php continue直接用在switch裡會當作break 12/21 15:13
8F:→ UniFish:了解了~我再來去試一下~感恩+_+ 12/21 15:14
9F:→ UniFish:OK了~原來switch要慎用continue和break!! 12/21 15:44
10F:→ terrybob:執行switch會比複合式if elseif 還要快!! 12/21 16:30
11F:→ tkdmaf:但是如果有100個複合條件,寫switch會死人。 12/21 21:46
12F:→ UniFish:那若有100個...就寫if比較快嗎? 12/21 22:11
13F:→ UniFish:若用$($XXX)來當if的判斷,似乎比較活一點~不過目前沒這需 12/21 22:12
14F:→ UniFish:求XDD 12/21 22:12
15F:→ tkdmaf:當然是……用陣列!重構的書就有提到這一點。 12/22 10:30