C:
在 C 的 switch 中使用 continue,若不是在迴圈中,出現錯誤
#include#include int main(int argc, char** argv) { int c = 10; switch (c) { case 7: continue;//error:continue statement not within a loop } return (EXIT_SUCCESS); }
PHP:
在 PHP 的 switch 中使用 continue,沒傳遞參數時,跟使用 break 意思一樣
「In PHP the switch statement is considered a looping structure for the purposes of continue. continue behaves like break (when no arguments are passed). If a switch is inside a loop, continue 2 will continue with the next iteration of the outer loop.」
參考:https://www.php.net/manual/en/control-structures.continue.php
$c=7; switch ($c) { case 7: var_dump("continue test"); continue; default: var_dump($c); break; } //輸出 string(13) "continue test"
[在迴圈中的 switch 中使用 continue]
C:
在 C ,迴圈(例如while)中的 switch 使用 continue,效用會針對迴圈(例如while)
#include#include int main(int argc, char** argv) { int c = 10; while (c > 6) { c--; switch (c) { case 7: continue; } printf("%d\n", c); } return (EXIT_SUCCESS); } /* 輸出 9 8 6 */
PHP:(情況一)
在 PHP,迴圈(例如while)中的 switch 使用 continue,沒傳遞參數時,跟使用 break 意思一樣
$c=10; while ($c>6) { $c--; switch ($c) { case 7: var_dump("continue test"); continue; } var_dump($c); } /* 輸出 int(9) int(8) string(13) "continue test" int(7) int(6) */註:在 PHP 7.3 以上,迴圈內的 switch 使用「continue」、「continue 1」,會出現
「Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?」
,因為「continue」、「continue 1」其實就等於「break」,開發者寫「continue」不寫「break」,很可能是為了作用到外層的迴圈,所以出現此Warning,提醒開發者。
PHP:(情況2)
在 PHP,迴圈(例如while)中的 switch 使用 continue,若要對外層的迴圈作用,須使用「continue 數字」。
例如「continue 2」,
第1次continue作用在內層的switch,
第2次continue作用在外層的迴圈(例如while)。
$c=10; while ($c>6) { $c--; switch ($c) { case 7: var_dump("continue test"); continue 2; } var_dump($c); } /* 輸出 int(9) int(8) string(13) "continue test" int(6) */
沒有留言:
張貼留言