- PHP編程基礎與實踐教程
- 干練 毛紅霞
- 1219字
- 2019-11-29 15:51:48
2.10 條件控制語句
條件控制語句可以通過對給定的條件進行判斷,以決定執行兩個或多個分支中的哪一支,從而保證程序流程的邏輯合理性。
在PHP中,可以使用if…else…和switch兩種條件控制語句。

【條件控制語句】
2.10.1 if…else…
if…else…語句是絕大多數程序設計語言中重要的且常用的條件控制語句,其作用是對條件表達式進行判斷,然后根據判斷結果,選擇執行相應的語句組。
在PHP中,if…else…條件控制語句有三種。
(1)if語句:根據條件表達式的結果,判斷是否執行語句組,語法格式如下。
if (expr) { statement; }
其中,expr為條件表達式;statement為語句組。
如果條件表達式expr為真,則執行statement語句組;如果條件表達式expr為假,則跳過statement語句組。
(2)if…else…語句:根據條件表達式的結果,在兩個判斷語句組中選擇執行一個,語法格式如下。
if (expr) { statement1; } else { statement2; }
其中,expr為條件表達式;statement1和statement2為語句組。
如果條件表達式expr為真,則執行statement1語句組;如果條件表達式expr為假,則執行statement2語句組。
(3)else if語句:根據多個條件表達式的結果,在兩個以上的判斷語句組中選擇執行一個,語法格式如下。
if (expr1) { statement1; } else if (expr2) { statement2; } else { statement3; }
其中,expr1和expr2為條件表達式;statement1、statement2、statement3為語句組。
如果條件表達式expr1為真,則執行statement1語句組;如果條件表達式expr1為假,則判斷條件表達式expr2。如果條件表達式expr2為真,則執行statement2語句組;如果條件表達式expr2為假,則執行statement3語句組。
說明:if…else…語句只能選擇兩種結果,即執行真或假兩種語句組。如果選擇兩種以上的結果時,就需要使用else if語句,而else if語句可以理解為if…else…語句的嵌套使用。
【實例2-45(47_If_Statement.php)】 使用if…else…條件控制語句判斷分數段。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = rand(1, 100); //獲取1~100的隨機數 echo'分數:'.$num.'<br/>'; //顯示結果 //判斷分數段 if ($num >= 90) { echo '優秀'; //顯示結果 } else if ($num >= 80 && $num < 90) { echo '良好'; //顯示結果 } else if ($num >= 70 && $num < 80) { echo '中等'; //顯示結果 } else if ($num >= 60 && $num < 70) { echo '及格'; //顯示結果 } else { echo '不及格'; //顯示結果 } ?>
運行結果如圖2-45所示。

圖2-45 if…else…條件控制語句
說明:由于本實例判斷的是隨機數,因此每次結果都可能不一樣。
2.10.2 switch
switch語句可以進行多重判斷,因此可以避免需要使用大量else if語句進行多重判斷的情況,從而避免條件控制語句過于冗長,提高代碼的可讀性,語法格式如下。
switch (variable) { case value1: statement1; break; case value2: statement2; break; … default: default statement; }
switch語句將variable的值分別與case中的value進行比較,如果兩者不相等,則繼續查找下一個case;如果兩者相等,則執行相應的statement語句組和break語句;如果沒有與variable相等的case,則執行default statement語句組。
注意:如果case語句組中沒有break語句,那么switch語句會持續往下執行直到結束。為了避免這種浪費時間和資源的行為,一定要在每個case語句組中加入break語句。
【實例2-46(48_Switch_Statement.php)】 使用switch條件控制語句判斷分數段。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = rand(1, 100); //獲取1~100的隨機數 echo'分數:'.$num.'<br/>'; //顯示結果 $var = ($num - ($num % 10)) / 10; //去掉個位數 //判斷分數段 switch ($var) { case 10: //如果$var等于10 echo '優秀'; //顯示結果 break; //跳出 case 9: //如果$var等于9 echo '優秀'; //顯示結果 break; //跳出 case 8: //如果$var等于8 echo '良好'; //顯示結果 break; //跳出 case 7: //如果$var等于7 echo '中等'; //顯示結果 break; //跳出 case 6: //如果$var等于6 echo '及格'; //顯示結果 break; //跳出 default: //默認值 echo '不及格'; //顯示結果 } ?>
運行結果如圖2-46所示。

圖2-46 switch條件控制語句
說明:由于本實例判斷的是隨機數,因此每次結果都可能不一樣。
- Mastering Concurrency Programming with Java 8
- Java 11 Cookbook
- Unity Game Development Scripting
- 深入理解Elasticsearch(原書第3版)
- R Data Analysis Cookbook(Second Edition)
- Vue.js 2 Web Development Projects
- OpenCV with Python By Example
- Python從入門到精通(第3版)
- 動手打造深度學習框架
- 嵌入式Linux C語言程序設計基礎教程
- Penetration Testing with the Bash shell
- Mastering ASP.NET Core 2.0
- Android開發權威指南(第二版)
- Web應用程序設計:ASP
- 區塊鏈原理與技術應用