作者UniFish (貢貢老盃)
看板PHP
標題Re: [請益] 迴圈continue的問題
時間Tue Dec 21 17:00:22 2010
自回一下,我改為:
$i=1;
while (XXXX)
{
switch (OOOO)
{
case '00':
XXXXXXX;
break;
case '11'
OOOOOOO;
break;
case '99'
continue 2;
default:
XXXXXXXX;
break;
}
$i++;
}
就可以正確的執行了!!
學到一課!!
※ 引述《UniFish (貢貢老盃)》之銘言:
: 我最近才剛從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:推 ROCKIT:請問為什麼是continue 2;?? 12/21 23:56
2F:→ UniFish:要跳脫二層外的迴圈,continue是跳回switch頭 12/22 10:34
3F:→ UniFish:continue 2;就是再外一層while的頭 12/22 10:34