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