- PHP+MySQL Web应用开发教程
- 李辉等编著
- 982字
- 2021-03-27 03:04:06
3.2 条件控制语句
所谓条件控制语句就是对语句中不同条件的值进行判断,进而根据不同的条件执行不同的语句。在条件控制语句中主要有两个语句:if条件控制语句和switch多分支语句。
3.2.1 if条件控制语句
if条件控制语句是所有流程控制语句中最简单、最常用的一个,根据获取的不同条件判断执行不同的语句。应用范围十分广泛,无论程序大小几乎都会应用到该语句。其语法如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/70_02.jpg?sign=1739260723-AUVkSlaA4PRslJrmaFJmQcdwKyIx6DcR-0-d8cbe36f44b88e4e55458f46877ae2bb)
参数expr按照布尔求值。如果expr的值为true,将执行statement,如果值为false,则忽略statement。if语句可以无限层地嵌套到其他if语句中去,实现更多条件的执行。
else的功能是当if语句在参数expr的值为false时执行其他语句,即在执行的语句不满足该条件时执行else后大括号中的语句。
【例3-1】 if…else的应用。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/70_03.jpg?sign=1739260723-c83pZzrRz6v298yqhWNwRadyLx8nnGJf-0-3e3f13cd579808bccfab076da3d719a1)
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/71_01.jpg?sign=1739260723-1UQu7K96vDSCRxgyQDCppYKuXvQoSxjW-0-d2f9782e803a9edc0ed75845e4d07c05)
输出结果如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/71_02.jpg?sign=1739260723-gBKaHjpzp5Okfsq9bkgOwepfmJSW35UB-0-215081d0256d01fc0f76636ba7630eb4)
在同时判断多个条件的时候,PHP提供了elseif的语句来扩展需求。elseif语句被放置在if和else语句之间,满足多条件同时判断的需求。
if语句的流程如图3-7、图3-8和图3-9所示。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/71_03.jpg?sign=1739260723-wAo0I51SIaeHfDgDIau9DzQUlqcL6x3v-0-9350efe25495bb9de5eef87c2bdd4552)
图3-7 if语句流程图
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/71_04.jpg?sign=1739260723-8vOKnZBs6XrbtRj5Kq4rZYTOS8XPw7rW-0-1e14adefa12fd5623617d12af4ccb7f9)
图3-8 if…else语句流程控制图
if语句的流程如图3-9所示。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/71_05.jpg?sign=1739260723-nUHgAKXtZ6RyQEGkZEQr3MFiPRcXv5TA-0-ecccedf0791153bff0df8a40806f8fb7)
图3-9 elseif语句的流程控制图
【例3-2】从文本框输入一个百分制分数,单击“提交”按钮后,输出成绩等级。90分以上记为“A”,80~89分记为“B”,70~79分记为“C”,60~69分记为“D”,60分以下记为“D”。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/72_01.jpg?sign=1739260723-DTFVD4NHJ6Fn3WCT0vi7cag7jfdtJc73-0-76be74a8a3b63c488c6c77d81f0136f1)
运行结果为:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/72_02.jpg?sign=1739260723-pDJ4wGcSu7iwRoGmLQQNyY1QSwvwNwzD-0-b8363e717a7bf095325e8047336f1ea0)
3.2.2 switch多分支语句
switch语句和if条件控制语句类似,实现将同一个表达式与很多不同的值比较,获取相同的值,并且执行相同的值对应的语句。其语法如下:
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/72_03.jpg?sign=1739260723-V976rQhTFQF4vTNuHRoqJSO1KAjE0p3K-0-34f6afe569dce9a74ab6a6c5ff94a365)
参数说明如表3-1所示。
表3-1 switch语句参数介绍
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/73_01.jpg?sign=1739260723-Uetp50PP0Qz9r71w7t7UHkQByISBqFEt-0-e35c2eccc14e0fa240969548600207fe)
switch语句的流程控制如图3-10所示。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/73_02.jpg?sign=1739260723-8pdJBMmiEHR1keiga7WxowCnzMFtweoj-0-50925061922c94195341f93548f5e9f8)
图3-10 switch语句流程控制图
注:
1)表达式的类型可以是数值型或者字符串型。
2)多个不同的case可以执行同一个语句块。
【例3-3】应用switch语句判断成绩的等级情况。
![](https://epubservercos.yuewen.com/A81163/18123624508030506/epubprivate/OEBPS/Images/73_03.jpg?sign=1739260723-yQBwpR7S6JDh9xmmNDJSOu2qstKBqCEM-0-a6e2a1b53045239a1dc9cb5b463c2121)
运行结果为:不及格。
注:if和switch语句可以从使用的效率上来进行区别,也可以从实用性角度去区分。如果从使用的效率上进行区分,在对同一个变量的不同值作条件判断时,使用switch语句的效率相对更高一些,尤其是判断的分支越多越明显。
如果从语句实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是实用性最强和应用范围最广的语句。
在程序开发的过程中,if和switch语句的使用应该根据实际的情况而定,不要因为switch语句的效率高就一味地使用,也不要因为if语句常用就不应用switch语句。要根据实际的情况,具体问题具体分析,使用最适合的条件语句。在一般情况下可以使用if条件语句,但是在实现一些多条件的判断中,特别是在实现框架的功能时就应该使用switch语句。