官术网_书友最值得收藏!

2.10 條件控制語句

條件控制語句可以通過對給定的條件進行判斷,以決定執行兩個或多個分支中的哪一支,從而保證程序流程的邏輯合理性。

在PHP中,可以使用if…else…和switch兩種條件控制語句。

p75-2

【條件控制語句】

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所示。

2d45

圖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所示。

2d46

圖2-46 switch條件控制語句

說明:由于本實例判斷的是隨機數,因此每次結果都可能不一樣。

主站蜘蛛池模板: 博爱县| 苏尼特右旗| 资兴市| 张北县| 白银市| 阳春市| 溆浦县| 河津市| 盐亭县| 四平市| 商都县| 尼玛县| 关岭| 溧阳市| 元氏县| 秭归县| 贺州市| 澎湖县| 金秀| 玛多县| 中卫市| 连云港市| 乌兰察布市| 中牟县| 新巴尔虎左旗| 襄城县| 龙江县| 聊城市| 太和县| 藁城市| 大城县| 许昌市| 东辽县| 若羌县| 桐城市| 定日县| 兴和县| 昔阳县| 离岛区| 郁南县| 八宿县|