課程
/后端開發
/PHP
/PHP入門篇
執行第三個case的時候,$num = 2而case 3, 為什么還是+10了?
我試著把第三個case改成 case 2, $sum 還是40。
2017-01-09
源自:PHP入門篇 6-6
正在回答
順序執行所以把3和2更換之后結果是不一樣的一個是30一個是40 ?并不是你改過之后先執行2在執行3在執行default而是執行2之后直接執行default結果是30不是40
你的switch($num) 里面選中的元素是$num 所以就判定$num的值。因為你前面的$num = 2; 所以直接從case 2 :開始計算,不是從case 1 : 開始計算。所以就是$sum=$sum(10) + 10;然后case 3 : $sum = $sum(20) + 10;然后default : $sum = $sum(30) + 10;輸出的是最后的一個$sum按照上面的規律,這個時候$sum已經等于40了,所以輸出的數據就為40。共勉,加油。?
結合第一個回答與自己的嘗試,正如一答所說,case只是分區,不同case的語句其實是相連的(如果沒有break隔開的話 ) 。case 1 2 3 ,不加break,改變三者的順序,若case2 在第一個 則 $sum ==? 50; 若case 2在第三位 ,則$sum == 30 諸位同學可自行嘗試
switch的機制大概是這樣的,你可以這么理解,case相當于一個個傳送點,然后根據你的參數,比如num==2,就傳送到往下最近的case 2,找不到的話就執行最下面的default,所以break是要加的,相當于退出點,case你可以理解成只有單向傳送的作用,并不支持退出,或作為各塊之間的分隔;
所以改第三個case為case2時$sum還是40,如果你把第一個case改成case 2,$sum就會變成40;
//同是正在入門php,有錯望網友指正;
舉報
PHP入門教程輕松學習,行業大牛幫您快速掌握PHP編程基礎知識。
2 回答B例子為什么是40
2 回答為什么A列子 while($num>3)后面不加結束符 而b例子要加
1 回答在例子b中 $num = 2 為什么還會執行case3
6 回答沒有break 會一直執行到底嘛不是,應該是執行default下面的語句,這樣B列子的值就是20,但是為什么輸出了40 啊?不懂??!
1 回答B例子解釋看不懂
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-06-10
順序執行所以把3和2更換之后結果是不一樣的一個是30一個是40 ?并不是你改過之后先執行2在執行3在執行default而是執行2之后直接執行default結果是30不是40
2017-01-30
你的switch($num) 里面選中的元素是$num 所以就判定$num的值。因為你前面的$num = 2; 所以直接從case 2 :開始計算,不是從case 1 : 開始計算。所以就是$sum=$sum(10) + 10;然后case 3 : $sum = $sum(20) + 10;然后default : $sum = $sum(30) + 10;輸出的是最后的一個$sum按照上面的規律,這個時候$sum已經等于40了,所以輸出的數據就為40。共勉,加油。?
2017-01-15
結合第一個回答與自己的嘗試,正如一答所說,case只是分區,不同case的語句其實是相連的(如果沒有break隔開的話 ) 。case 1 2 3 ,不加break,改變三者的順序,若case2 在第一個 則 $sum ==? 50; 若case 2在第三位 ,則$sum == 30 諸位同學可自行嘗試
2017-01-09
switch的機制大概是這樣的,你可以這么理解,case相當于一個個傳送點,然后根據你的參數,比如num==2,就傳送到往下最近的case 2,找不到的話就執行最下面的default,所以break是要加的,相當于退出點,case你可以理解成只有單向傳送的作用,并不支持退出,或作為各塊之間的分隔;
所以改第三個case為case2時$sum還是40,如果你把第一個case改成case 2,$sum就會變成40;
//同是正在入門php,有錯望網友指正;