迴圈 break 的疑惑

來源:互聯網
上載者:User
for($i = 1;$i <= 10; $i++ ){
echo 'print times';//結果是 print times 重複 10 次
}

for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo "$m ";
if($m < 90 || $m > 190) {
break 2;
}
  echo 'print times';//結果是 2 ,跳出 第 2 層迴圈後,為什麼第 1 層迴圈的中列印句沒有執行呢?
}


回複討論(解決方案)

for($i = 1;$i <= 10; $i++ ){  for($j = 1;$j <= 10;$j++){    $m = $i * $i + $j * $j;    echo "$m  ";    if($m < 90 || $m > 190) {      break 2; //跳出2層迴圈,也就是跳到 第1層迴圈結束    }  } //這是第2層迴圈結束 echo 'print times';} //這是第1層迴圈結束
break 2; 中的 2 是量詞,是2層迴圈的意思。不是數詞,即不是第2層的意思

同樣的例子:
//設定編碼為UTF-8,以避免中文亂碼
header('Content-Type:text/html;charset=utf-8');
//執行嵌套迴圈,外層迴圈3次,內層迴圈2次。當執行到第2次外層迴圈時,使用break 2跳出,直接跳出2層迴圈
for ($i = 0; $i < 3; $i++){
echo '外層迴圈'.$i.' 開始
';
for ($j = 0; $j < 2; $j++){
if ($i == 1){
break 2; //使用break 2直接跳出2層迴圈
}
echo '內層迴圈'.$i.'-'.$j.'
';
}
echo '外層迴圈'.$i.' 結束

';
}
?>
結果:
外層迴圈0 開始
內層迴圈0-0
內層迴圈0-1
外層迴圈0 結束

外層迴圈1 開始

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.