多向條件分支結(jié)構(gòu)(switch子句)
11.png
switch- case語句語法:
switch(表達式){
case 值1:
語句序列1; break;
case 值2:
語句序列2; break;
…
default:
語句序列 n; break;
}
?當程序執(zhí)行碰到switch條件判斷時,它會取出鍵值,然后與語句體中的case所列出的值逐一比較,如果數(shù)值不符合,則將數(shù)值往下一個case傳遞,如果數(shù)值符合,則執(zhí)行case中的語句,然后再碰到break語句即跳出switch條件判斷,如果所有的值比對都不符合,則會執(zhí)行default中的語句 。
switch語句使用注意事項:
?switch語句與if語句不同,它僅能判斷一種關(guān)系:是否恒等。
?switch語句中case子句的常量可以是整型常量、字符型常量、表達式或變量。
?在同一個switch中,case子句的常量不能相同,否則第二個值永遠無法匹配到。
?case 和 default 子句后面的語句序列允許由多個可執(zhí)行語句組成,且不必用“{ }”括起來,也可以為空語句。
?switch語句中可省略break語句和default子句。但省略后會改變流程。
<?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 ) { //條件表達式是一個變量$i
** case** 2: //和值2匹配時,沒有break,將控制轉(zhuǎn)移到下一個case中的語句
**case** 3: //和值3匹配時,執(zhí)行下面的語句塊
**echo** "\$i和值2或3任一個匹配";
**break**; //退出switch語句
**case** 4: //和值為3匹配上時,執(zhí)行下面的語句塊
**echo** "\$i和值4匹配時,才會執(zhí)行";
**break**; //退出switch語句
**default**: //匹配任何和其他case都不匹配的情況, 要放在最后一個case之后
**echo** "\$i沒有匹配的值時,才會執(zhí)行";
}
<?php
/* 多路分支結(jié)構(gòu)
*
*
* 1. switch()括號中, 必須是一個變量
* 2. 在switch() {}中放的是多個case語句, case 空格, 后面放的是值, 值的后面使用一個 冒號 :
* 3. 可以使用default 在沒有匹配值的時候, 默認執(zhí)行default中的代碼
*
* switch(變量) {
* case 值:
* 語句;
* 語句;
* 語句;
* 語句;
* 語句;
* break;
* case 值2:
* 語句;
* [break;]
* case 值3:
* 語句;
* [break];
*
* ....
*
* [default:] 語句 break;
* }
*
*
* switch - case 需要注意的一些細節(jié):
*
* 1. 如果在case中的語句過多, 就需要將多個語句做成一個函數(shù)之類
* 2. switch(變量) 變量的類型 只充許兩種類型 整型 和 字符串
* 3. break是退出switch結(jié)構(gòu)使用的, 如果需要同時匹配多個值時, 可以使用多個case而不加break;
*
* 4.
* else if 判斷范圍時使用
*
* switch case 單個值匹配進行分支
*
* 對比
*
* */
$floor = 1;
switch($floor) {
case 1:
case 11:
case 111:
case 1111:
case 11111:
echo "這是第一層<br>";
echo "11111111111111<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;
}