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