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