PHP+MySQL动态网站开发从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

4.5 条件控制结构

条件控制语句中包含两个主要的语句,一个是if语句,一个是switch语句。

4.5.1 单一条件分支结构(if语句)

if语句是最为常见的条件控制语句,它的格式为:

    if(条件判断语句){
              命令执行语句;
    }

这种形式只是对一个条件进行判断。如果条件成立,则执行命令语句,否则不执行。

if语句的流程控制图如图4-9所示。

图4-9 if语句流程控制图

【例4.9】(实例文件:ch04\4.9.php)

    <? php
     $num = rand(1,100);                         //使用rand()函数生成一个随机数
     if ($num % 2 ! = 0){                         //判断变量$num是否为奇数
        echo "\$num = $num";                        //如果为奇数,输出表达式和说明文字
        echo "<br />$num是奇数。";
     }
    ?>

运行后刷新页面,结果如图4-10所示。

图4-10 程序运行结果

【案例分析】:

(1)此实例首先使用rand()函数随机生成一个整数$num,然后判断这个随机整数是不是奇数,如果是,则输出上述结果,如果不是,则不输出任何内容,所以如果页面内容显示为空,则刷新页面即可。

(2)rand() 函数返回随机整数,语法格式如下:

    rand(min, max)

此函数主要是返回min和max之间的一个随机整数。如果没有提供可选参数min和max,则rand() 返回0到RAND_MAX之间的伪随机整数。

4.5.2 双向条件分支结构(if…else语句)

如果是非此即彼的条件判断,可以使用if…else语句。它的格式为:

    if(条件判断语句){
          命令执行语句A;
    }else{
          命令执行语句B;
    }

这种结构形式首先判断条件是否为真,如果为真,则执行命令语句A,否则执行命令语句B。

if…else语句程序控制流程图如图4-11所示。

图4-11 if…else语句控制流程图

【例4.10】(实例文件:ch04\4.10.php)

    <html>
    <? php
    $d=date("D");                //定义时间变量
    if ($d=="Fri")                //判断时间变量是否等于周五
      echo "今天是周五哦!";
    else
      echo "可惜今天不是周五!";
    ?>

运行后结果如图4-12所示。

图4-12 程序运行结果

4.5.3 多向条件分支结构(elseif语句)

在条件控制结构中,有时会出现多于两种的选择,此时可以使用elseif语句。它的语法格式为:

        if(条件判断语句){
              命令执行语句;
    }elseif(条件判断语句){
              命令执行语句;
    }…
    else{
              命令执行语句;
    }…

elseif语句程序控制流程图如图4-13所示。

图4-13 elseif语句控制流程图

【例4.11】(实例文件:ch04\4.11.php)

    <? php
    $score = 85;                                    //设置成绩变量$score
    if ($score >= 0 and $score <= 60){         //判断成绩变量是否在0~60之间
    echo "您的成绩为差";                         //如果是,说明成绩为差
    }elseif($score > 60 and $score <= 80){ //否则判断成绩变量是否在61~80之间
    echo "您的成绩为中等";                //如果是,说明成绩为中等
    }else{                                           //如果两个判断都是false,则输出默认值
    echo "您的成绩为优等";                //说明成绩为优等
    }
    ?>

运行后结果如图4-14所示。

图4-14 程序运行结果

4.5.4 多向条件分支结构(switch语句)

switch语句的结构给出不同情况下可能执行的程序块,条件满足哪个程序块,就执行哪个语句。它的语法格式为:

    switch(条件判断语句){
            case可能判断结果a:
                  命令执行语句;
    break;
            case可能判断结果b:
                  命令执行语句;
    break;
            …
            default:
                  命令执行语句;
    }

其中,若“条件判断语句”的结果符合某个“可能判断结果”,就执行其对应的“命令执行语句”。如果都不符合,则执行default对应的默认项的“命令执行语句”。

switch语句的流程控制图如图4-15所示。

图4-15 switch语句控制流程图

【例4.12】(实例文件:ch04\4.12.php)

    <? php
    $x=5;            //定义变量$x
    switch ($x)      //判断$x与1~5之间的关系
    {
    case 1:
      echo "数值为 1";
      break;
    case 2:
      echo "数值为2";
      break;
    case 3:
      echo "数值为3";
      break;
    case 4:
      echo "数值为4";
      break;
    case 5:
      echo "数值为5";
      break;
    default:
      echo "数值不在1到5之间";
    }
    ?>

运行后结果如图4-16所示。

图4-16 程序运行结果