課程
/后端開發
/PHP
/PHP入門篇
B中num=2執行case2,為什么會執行后面的。num又沒有累加上去 條件不成立啊
2016-01-26
源自:PHP入門篇 6-6
正在回答
在B例子中,執行了第二個case , $sum變為20,由于沒有break,繼續執行第三個case,然后又執行default,$sum變為了40。進了循環后,沒有跳出來的關鍵字,它就會自動走完這個循環再出來。
break的作用是阻止進行,題主已經知道了。
之所以執行完case2后,還會執行case3,是因為他是按順序依次進行運算的,
在沒有break的情況下,只要在某一個位置滿足了條件,這個位置以下的條件都會無效,不管條件對不對,都會運算下去。
$num?=?2; $sum??=?10;? switch($num){ case?1: $sum?=?$sum??+?10;//不滿足條件,跳過此次運算。 case?2: $sum?=?$sum??+?10;//在此處case?2滿足了條件,下面的運算都會進行,不管條件對不對。 case?3: $sum?=?$sum??+?10;//因前面case?2的時候已經滿足了條件,符合了判斷,故此處依然執行 default: $sum?=?$sum??+?10;//到default結束運算。 }
理清了上面順序和原因之后,
再來看下,輸出結果是40,這個40是怎來的?
初始變量$sum = 10;
在case 2:的時候 $sum = $sum +10;?
這時$sum=20,因為沒有了break,故將此結果帶入繼續進行下面運算;
在case 3:$sum = $sum +10;
此時$sum=20+10 =30;
在default:$sum = $sum+10; //即$sum = 30 +10;
故結果為40
需要在每個case最后加入break;已停止向下執行。如果不加break,在滿足條件的case后面的程序都會執行。
我不是林俊杰 提問者
因為B中的switch語句中沒有加break,他會從頭到尾一個一個的輸出
舉報
PHP入門教程輕松學習,行業大牛幫您快速掌握PHP編程基礎知識。
1 回答在例子b中 $num = 2 為什么還會執行case3
4 回答B栗子中執行了Case2之后,繼續執行Case3和default,那結果應是60吧,為什么是40???
2 回答當$num與case不符合時為什么還要繼續執行?
5 回答在B例子中,case 3條件不能滿足,為什么還會被執行?
1 回答php繼續學什么
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-05-12
在B例子中,執行了第二個case , $sum變為20,由于沒有break,繼續執行第三個case,然后又執行default,$sum變為了40。進了循環后,沒有跳出來的關鍵字,它就會自動走完這個循環再出來。
2016-02-20
break的作用是阻止進行,題主已經知道了。
之所以執行完case2后,還會執行case3,是因為他是按順序依次進行運算的,
在沒有break的情況下,只要在某一個位置滿足了條件,這個位置以下的條件都會無效,不管條件對不對,都會運算下去。
理清了上面順序和原因之后,
再來看下,輸出結果是40,這個40是怎來的?
初始變量$sum = 10;
在case 2:的時候 $sum = $sum +10;?
這時$sum=20,因為沒有了break,故將此結果帶入繼續進行下面運算;
在case 3:$sum = $sum +10;
此時$sum=20+10 =30;
在default:$sum = $sum+10; //即$sum = 30 +10;
故結果為40
2016-01-26
需要在每個case最后加入break;已停止向下執行。如果不加break,在滿足條件的case后面的程序都會執行。
2016-01-26
因為B中的switch語句中沒有加break,他會從頭到尾一個一個的輸出