![PHP入门很轻松(微课超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/100/44510100/b_44510100.jpg)
2.6.1 条件控制结构
条件控制语句中包含两个主要的语句,一个是if语句,另一个是switch语句。
1.单一条件分支结构(if语句)
if语句是最为常见的条件控制语句,它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36810.jpg?sign=1739527898-o0lClUSxejxw6t6oAzwi5HjsrvVCzWFZ-0-b183e0f62edba643ad420d427b7350a8)
这种形式只是对一个条件进行判断。如果条件成立,就执行命令语句,否则不执行。
if语句的流程控制图如图2-19所示。
【例2-19】判断随机数是否是奇数(实例文件:源文件\ch02\2.19.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36811.jpg?sign=1739527898-dwLOFaeRnXmtIhZ9GsphKlApMbxmR4ms-0-f08eeeaedff34d69b0a060d18b07942f)
运行结果如图2-20所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36612.jpg?sign=1739527898-AHR5SxSLjS80LNZeDtNLGi7BUpwZgnmi-0-89ba3dfa39669a729b21e3e3f823263b)
图2-19 if语句流程控制图
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_3276.jpg?sign=1739527898-wpKLdmU4pYNCZLtXJuwN1glc4wI4TrWk-0-7181035ad4b8bfdaf91cc1906648796f)
图2-20 if语句
2.双向条件分支结构(if…else语句)
如果是非此即彼的条件判断,可以使用if…else语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36812.jpg?sign=1739527898-xA6H0ehY1ZwEKTyTxYJz7T3tKIdCPeXu-0-a05e724968f34c4570ddc71833cea57d)
这种结构形式首先判断条件是否为真,如果为真,就执行命令语句A,否则执行命令语句B。
if…else语句的流程控制图如图2-21所示。
【例2-20】判断随机数是奇数还是偶数(实例文件:源文件\ch02\2.20.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P40_36813.jpg?sign=1739527898-Pj4JmAi2nLifSfn0rdqqw9BMt1bYGaMs-0-8ea441d8086d3a90cdf82d4d9408710e)
运行结果如图2-22所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3375.jpg?sign=1739527898-o7pBg1SLB0ja0ogytRmrDyuES52RQvQk-0-7d3fccf3853f37fa2d462986dc12d6b3)
图2-21 if…else语句流程控制图
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3378.jpg?sign=1739527898-vgEGbbutAkRTYcYFicpr54zSoCvtdX2S-0-27289b4722323132f5c32cc6426f6523)
图2-22 if…else语句
3.多向条件分支结构(elseif语句)
在条件控制结构中,有时会出现多种选择,此时可以使用elseif语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_36815.jpg?sign=1739527898-ctpiOhlcHDEot5m1YL33HpfMoK2t8LDl-0-c3f23f70dcff3248e44b72a028a6d940)
elseif语句的流程控制图如图2-23所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_3430.jpg?sign=1739527898-yUvhKt8CoO2wkrcyYaQQc0vY9b3EfiPx-0-50a11dcb007f94b4ef26b3c5b338f351)
图2-23 elseif语句流程控制图
【例2-21】判断成绩的等级(实例文件:源文件\ch02\2.21.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P41_36816.jpg?sign=1739527898-iiBRUJOxeo09Cn4NLlcG1sUDvUmMmcth-0-c5a59354ede3c2f75ab3033b7c7f0794)
运行结果如图2-24所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_3507.jpg?sign=1739527898-ABzzxZz0G1XagEMNul1LJjEUkWOaD1cN-0-cbe2d0216ecd60aa7baa8efb0993c9ca)
图2-24 elseif语句
4.多向条件分支结构(switch语句)
switch语句的结构给出不同情况下可能执行的程序块,条件满足哪个程序块,就执行哪条语句。它的语法格式如下:
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36818.jpg?sign=1739527898-sN59mrhQLQzm8xeEaM7NmClhLB3h6Hui-0-2551ebd39e37608f823e6a91f4002f6c)
其中,若“条件判断语句”的结果符合某个“可能判断结果”,就执行其对应的“命令执行语句”。如果都不符合,则执行default对应的默认项的“命令执行语句”。
switch语句的流程控制图如图2-25所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36615.jpg?sign=1739527898-VhxmqJ0NcsHVtry9LwCgWNqen6FJYfA3-0-baec798454a24ad561c44044e9e7dbbb)
图2-25 switch语句流程控制图
【例2-22】使用switch语句(实例文件:源文件\ch02\2.22.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P42_36822.jpg?sign=1739527898-mqRxJ8lmzU6duLS2hdK9zYuJt0RhpLz3-0-5950c5e0a72817ba6e65f7f89751c81b)
运行结果如图2-26所示。首先定义一个变量$fruit,值为“苹果”,把$fruit传入switch语句中,然后进行匹配,若匹配到则执行相应代码,若匹配不到则执行default。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P43_3701.jpg?sign=1739527898-uVEdOqyMrkEYv4SHS5UHYgmYMzbJWKGf-0-e3ed38268442558c600f6271e48d6a48)
图2-26 switch语句
☆大牛提醒☆
switch语句与elseif语句都可以进行多重选择,但是在不同的情况下运行的效率是不一样的。当被判断的值为常量(固定不变的值)时,switch语句的运行效率高于elseif语句;当被判断的值为变量时,elseif语句的运行效率高于switch语句。