php break 迴圈

來源:互聯網
上載者:User
請高手給講講迴圈的區別,好嗎?尤其是 b/c的區別,實在不明白
A
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo "$m\n
";
if($m < 90 || $m > 190) {
break 2;
}
}
}
?>// 2
B
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo "$m\n
";
if($m < 90 || $m > 190) {
break ;
}
}
}/ /2 5 10 17 26 37 50 65 82 101
104 109 116 125 136 149 164 181 200
C
for($i = 1;$i <= 10; $i++ ){
for($j = 1;$j <= 10;$j++){
$m = $i * $i + $j * $j;
echo "$m\n
";
}
// 2 5 10 17 26 37 50 65 82 101
5 8 13 20 29 40 53 68 85 104
10 13 18 25 34 45 58 73 90 109
17 20 25 32 41 52 65 80 97 116
26 29 34 41 50 61 74 89 106 125
37 40 45 52 61 72 85 100 117 136
50 53 58 65 74 85 98 113 130 149
65 68 73 80 89 100 113 128 145 164
82 85 90 97 106 117 130 145 162 181
101 104 109 116 125 136 149 164 181 200


回複討論(解決方案)

你的 C 應為

for($i = 1;$i <= 10; $i++ ){  for($j = 1;$j <= 10;$j++){    $m = $i * $i + $j * $j;    echo "$m  ";  }  echo '
';}
2 5 10 17 26 37 50 65 82 101 5 8 13 20 29 40 53 68 85 104 10 13 18 25 34 45 58 73 90 109 17 20 25 32 41 52 65 80 97 116 26 29 34 41 50 61 74 89 106 125 37 40 45 52 61 72 85 100 117 136 50 53 58 65 74 85 98 113 130 149 65 68 73 80 89 100 113 128 145 164 82 85 90 97 106 117 130 145 162 181 101 104 109 116 125 136 149 164 181 200 
B 應為
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 ;    }  }  echo '
';}
2 5 10 17 26 37 50 65 82 101 104 109 116 125 136 149 164 181 200 
即小於 90 的只列印第一列,break 跳出當前迴圈也就是跳出一重迴圈
A 應為
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 '
';}
只列印一個 2
因為 break 2 是跳出 2 重迴圈

雙重迴圈細解,從網上摘抄來,送給有同樣疑惑的朋友
public static void main(String[] args)
{
for(int i=0①;i<=5②;i++③)
{
④for(⑤int j=0;⑥j<=5;⑦j++)
{
⑧if(j System.out.print(" ");
⑨if(j>=i)
System.out.print("*");
}
⑩System.out.println();
}
}
首先程式會執行①,給i初始化賦值0;然後判斷i是不是小於等於5,如果小於等於5就執行④這個for迴圈。在這個for迴圈中,先會給變數j初始化賦值0,然後判斷j是不是小於等於5,就執行⑧,因為i=j;所以會列印*,然後再執行⑦,把j++,這時j=1,然後執行⑥,判斷j是不是小於或等於5,如果小於或等於5就執行⑨,因為j=1,i=0,j>i,所以會列印*,然後一直這樣判斷,當j=5時,因為它等於5,所以執行⑨,列印*,然後j++,這時j=6,j大於5了就跳出④這個for迴圈,執行它後面的那句列印換行的代碼⑩,然後執行第一個for迴圈的③,i++,這時i=1,再執行②判斷i是不是小於或等於5,如果小於或等於就執行第二個for迴圈④,然後就執行和上面一樣的過程,直到i++=6,判斷i大於5,這是程式結束。這裡的要點就是①和⑤這樣的賦值只會執行一次,其它的按判斷結果執行。

在上面跳出2重迴圈的例子中:
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 '
';//
列印多少次呢?
}
換成下面的代碼:
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 重迴圈,是跳出 第 2 重迴圈,還是跳出 總計 2  次迴圈, 跳出所有的迴圈呢?
請教高手

跳出第 2 重迴圈了,可第 1 重迴圈的  echo 'print times'; 是否還應該再繼續執行呢?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.