- PHP編程基礎與實踐教程
- 干練 毛紅霞
- 1172字
- 2019-11-29 15:51:48
2.11 循環控制語句
循環控制語句可以根據給定的條件,多次重復執行某段代碼塊或函數,從而避免編寫煩瑣的、重復的代碼。
在PHP中,可以使用while、do…while、for和foreach四種循環控制語句。
注意:每種循環都要保證條件表達式的正確性,即保證循環能夠結束,死循環(無限期的循環)必然導致程序崩潰。
2.11.1 while
while語句是最基本的循環控制語句,語法格式如下。
while (expr) { statement; }
其中,expr為條件表達式;statement為語句組。
如果條件表達式expr為真,則執行statement語句組。執行結束后,再繼續判斷條件表達式expr,直到條件表達式expr為假時,才跳出循環。
【實例2-47(49_While_Statement.php)】 使用while循環控制語句輸出10以內的奇數。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = 1; //定義一個整型變量 echo'10以內的奇數有:'; //顯示結果 //循環 while ($num <= 10) { //判斷是否為奇數 if ($num% 2 == 1) { echo $num.' '; //顯示結果 } $num++; //$num遞增 } ?>
運行結果如圖2-47所示。

圖2-47 while循環控制語句
2.11.2 do…while
do…while語句是while循環控制語句的另一種表示形式,語法格式如下。
do { statement; } while (expr);
其中,expr為條件表達式;statement為語句組。
先執行statement語句組,執行結束后再判斷條件表達式expr,直到條件表達式expr為假時,才跳出循環。
注意:do…while循環控制語句中的while(expr)后面必須加上分號“;”。
說明:do…while循環控制語句和while循環控制語句的區別在于,while循環控制語句是先判斷再執行,而do…while循環控制語句是先執行后判斷。因此,do…while循環控制語句比while循環控制語句多循環一次。
【實例2-48(50_Do_While_Statement.php)】 使用do…while循環控制語句輸出10以內的奇數。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = 1; //定義一個整型變量 echo'10以內的奇數有:'; //顯示結果 //循環 do { //判斷是否為奇數 if ($num% 2 == 1) { echo $num.' '; //顯示結果 } $num++; //$num遞增 } while ($num<= 10); ?>
運行結果如圖2-48所示。

圖2-48 do…while循環控制語句
2.11.3 for
for語句是最常用的循環控制語句,語法格式如下。
for (expr1; expr2; expr3) { statement; }
其中,expr1為賦值表達式;expr2為條件表達式;expr3為運算表達式。
循環開始前,首先執行賦值表達式expr1,然后判斷條件表達式expr2,如果條件表達式expr2為真,則執行statement語句組,執行結束后,執行運算表達式expr3,直到條件表達式expr2為假時,才跳出循環。
【實例2-49(51_For_Statement.php)】 使用for循環控制語句輸出10以內的奇數。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = 1; //定義一個整型變量 echo'10以內的奇數有:'; //顯示結果 //循環 for ($num = 1; $num <= 10; $num++) { //判斷是否為奇數 if ($num% 2 == 1) { echo $num.' '; //顯示結果 } } ?>
運行結果如圖2-49所示。

圖2-49 for循環控制語句
2.11.4 foreach

【循環控制語句】
foreach語句與上述三種循環控制語句不同,其主要作用是遍歷數組,語法格式如下。
foreach (array_expression as $value) { statement; }
或
foreach (array_expression as $key => $value) { statement; }
其中,array_expression為需要遍歷的數組;“$key”為數組元素的索引;$value為數組元素的值;statement為語句組。
每次循環時,將當前數組元素中的索引賦值給$key,值賦值給$value,然后將數組指針向后移動,直到遍歷結束。
說明:使用foreach循環控制語句時,數組指針會自動重置,因此不需要手動設置指針位置。
【實例2-50(52_Foreach_Statement.php)】 定義一個存放this、is、an、array的數組,然后使用foreach循環控制語句遍歷該數組,并輸出每個元素的值。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $arr = array('this', 'is', 'an', 'array'); //定義一個數組 print_r($arr); //輸出數組結構 echo '<br/>數組元素的值:'; //換行 //遍歷數組 foreach ($arr as $value) { echo $value.' '; //顯示結果 } ?>
運行結果如圖2-50所示。

圖2-50 foreach循環控制語句
2.11.5 循環跳出語句
為了避免出現死循環或滿足一些特殊功能的需要,有時需要在滿足給定條件的前提下跳出循環,這時就需要使用循環跳出語句。

【循環跳出語句】
在PHP中,可以使用break和continue兩種循環跳出語句。
1. break
break循環跳出語句的作用是終止循環,即退出循環體,語法格式如下。
break $num;
其中,“$num”為可選參數,用于指定終止循環的層數。
【實例2-51(53_Break_Statement.php)】 使用for循環控制語句輸出10以內的奇數,當循環到5時,終止循環。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = 1; //定義一個整型變量 echo'10以內的奇數有:'; //顯示結果 //循環 for ($num = 1; $num <= 10; $num++) { //判斷是否等于5 if ($num== 5) { break; //終止循環 } //判斷是否為奇數 if ($num% 2 == 1) { echo $num.' '; //顯示結果 } } ?>
運行結果如圖2-51所示。

圖2-51 break循環跳出語句
2. continue
continue循環跳出語句的作用是跳過循環,即跳過本次循環,進入下一次循環,語法格式如下。
continue $num;
其中,$num為可選參數,用于指定跳過循環的層數。
【實例2-52(54_Continue_Statement.php)】 使用for循環控制語句輸出10以內的奇數,當循環到5時,跳過本次循環。實例代碼如下。
<?php //設置編碼格式,正確顯示中文 header("content-Type: text/html; charset=gb2312"); $num = 1; //定義一個整型變量 echo'10以內的奇數有:'; //顯示結果 //循環 for ($num = 1; $num <= 10; $num++) { //判斷是否等于5 if ($num== 5) { continue; //跳過循環 } //判斷是否為奇數 if ($num% 2 == 1) { echo $num.' '; //顯示結果 } } ?>
運行結果如圖2-52所示。

圖2-52 continue循環跳出語句
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- Photoshop智能手機APP UI設計之道
- arc42 by Example
- 高級C/C++編譯技術(典藏版)
- Mastering Unity Shaders and Effects
- Eclipse Plug-in Development:Beginner's Guide(Second Edition)
- 零基礎入門學習Python
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- RISC-V體系結構編程與實踐(第2版)
- Unity 2017 Mobile Game Development
- Scala Data Analysis Cookbook
- Learning Material Design
- 計算機應用技能實訓教程
- Machine Learning for Developers
- 零基礎學C++(升級版)