多向條件分支結(jié)構(gòu)(switch子句)
switch- case語(yǔ)句語(yǔ)法:
switch(表達(dá)式){
case 值1:
語(yǔ)句序列1镶骗; break;
case 值2:
語(yǔ)句序列2鼎姊; break;
…
default:
語(yǔ)句序列 n慰于; break;
}
?當(dāng)程序執(zhí)行碰到switch條件判斷時(shí)绵脯,它會(huì)取出鍵值桨嫁,然后與語(yǔ)句體中的case所列出的值逐一比較份帐,如果數(shù)值不符合,則將數(shù)值往下一個(gè)case傳遞畜挨,如果數(shù)值符合噩凹,則執(zhí)行case中的語(yǔ)句,然后再碰到break語(yǔ)句即跳出switch條件判斷驮宴,如果所有的值比對(duì)都不符合堵泽,則會(huì)執(zhí)行default中的語(yǔ)句 。
switch語(yǔ)句使用注意事項(xiàng):
?switch語(yǔ)句與if語(yǔ)句不同迎罗,它僅能判斷一種關(guān)系:是否恒等纹安。
?switch語(yǔ)句中case子句的常量可以是整型常量、字符型常量厢岂、表達(dá)式或變量。
?在同一個(gè)switch中可帽,case子句的常量不能相同窗怒,否則第二個(gè)值永遠(yuǎn)無(wú)法匹配到蓄拣。
?case 和 default 子句后面的語(yǔ)句序列允許由多個(gè)可執(zhí)行語(yǔ)句組成球恤,且不必用“{ }”括起來(lái)荸镊,也可以為空語(yǔ)句。
?switch語(yǔ)句中可省略break語(yǔ)句和default子句张惹。但省略后會(huì)改變流程岭洲。
v:* {behavior:url(#default#VML);}o:* {behavior:url(#default#VML);}p:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}v:textbox {display:none;}
幻燈片 5
.O {font-size:149%;}
<?php
$week = date("D");
switch( $week ) {
case "Mon": echo "星期一"; break;
case "Tue": echo "星期二"; break;
case "Wed": echo "星期三"; break;
case "Thu": echo "星期四"; break;
case "Fri": echo "星期五"; break;
case "Sat": echo "星期六"; break;
case "Sun": echo "星期日"; break;
}
**switch**( $i ) { //條件表達(dá)式是一個(gè)變量$i
** case** 2: //和值2匹配時(shí),沒(méi)有break盾剩,將控制轉(zhuǎn)移到下一個(gè)case中的語(yǔ)句
case 3: //和值3匹配時(shí),執(zhí)行下面的語(yǔ)句塊
echo "$i和值2或3任一個(gè)匹配";
break; //退出switch語(yǔ)句
case 4: //和值為3匹配上時(shí)屎暇,執(zhí)行下面的語(yǔ)句塊
echo "$i和值4匹配時(shí)驻粟,才會(huì)執(zhí)行";
break; //退出switch語(yǔ)句
default: //匹配任何和其他case都不匹配的情況, 要放在最后一個(gè)case之后
echo "$i沒(méi)有匹配的值時(shí),才會(huì)執(zhí)行";
}
/* 多路分支結(jié)構(gòu)
*
*
* 1. switch()括號(hào)中挤巡, 必須是一個(gè)變量
* 2. 在switch() {}中放的是多個(gè)case語(yǔ)句, case 空格屯掖, 后面放的是值, 值的后面使用一個(gè) 冒號(hào) :
* 3. 可以使用default 在沒(méi)有匹配值的時(shí)候贴铜, 默認(rèn)執(zhí)行default中的代碼
*
* switch(變量) {
* case 值:
* 語(yǔ)句;
* 語(yǔ)句;
* 語(yǔ)句;
* 語(yǔ)句;
* 語(yǔ)句;
* break;
* case 值2:
* 語(yǔ)句;
* break;
* case 值3:
* 語(yǔ)句;
* break;
*
* ....
*
* default: 語(yǔ)句 break;
* }
*
*
*
*
*
*/
$floor = 3;
switch($floor) {
case 1: echo "這是第一層<br>"; break;
case 2: echo "這是第二層<br>"; break;
case 3: echo "這是第三層<br>"; break;
case 4: echo "這是第四層<br>"; break;
case 5: echo "這是第五層<br>"; break;
default: echo "這是其它樓層<br>"; break;
}