版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章PHP流程控制語句3.1選擇結(jié)構(gòu)3.2循環(huán)結(jié)構(gòu)3.3跳轉(zhuǎn)語句3.4包含語句3.5綜合實(shí)訓(xùn)案例第3章PHP流程控制語句3.1選擇結(jié)構(gòu)3.2循環(huán)結(jié)構(gòu)31學(xué)習(xí)目的與要求熟練掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)及包含語句學(xué)習(xí)目的與要求熟練掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)及包含語句23.1選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),就是根據(jù)條件進(jìn)行邏輯判斷,以決定當(dāng)前程序的走向,從而得到不同的結(jié)果。3.1.1if語句if語句的語法格式如下:
if(條件表達(dá)式){
語句塊}
說明:當(dāng)“語句塊”為一條語句時(shí),可省略“{}”。功能:當(dāng)“條件表達(dá)式”的值為TRUE時(shí),執(zhí)行語句塊,否則執(zhí)行if語句后面的語句。3.1選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),就是根據(jù)條件進(jìn)行邏輯3if語句的流程圖如圖所示?!緦?shí)例3-1】if語句示例。
<?php header("Content-Type:text/html;charset=gb2312"); $a=9; $b=8; if($a>$b){ echo"a大于b"; }?>該段程序的功能為判斷變量a是否大于變量b,如果成立,則輸出“a大于b”。if語句的流程圖如圖所示?!緦?shí)例3-1】if語句示例。
43.1.2if…else語句if…else語句是一種二分支選擇語句。else的功能就是當(dāng)條件表達(dá)式的值為FALSE時(shí)執(zhí)行其他的語句。if…else語句的語法格式如下:
if(條件表達(dá)式){
語句塊1}else{
語句塊2}
說明:當(dāng)“語句塊1”或“語句塊2”為單條語句時(shí),可省略“{}”。功能:當(dāng)“條件表達(dá)式”的值為TRUE時(shí),執(zhí)行“語句塊1”,否則將執(zhí)行“語句塊2”。3.1.2if…else語句5if…else語句的流程圖如圖所示?!緦?shí)例3-2】if…else語句示例。
<?php header("Content-Type:text/html;charset=gb2312"); $a=9; if($a%2==0){ echo"a是偶數(shù)"; }else{ echo"a是奇數(shù)"; }?>
該段程序的功能就是判斷變量a的奇偶性。若變量a能夠整除2,則為偶數(shù),否則為奇數(shù)。
在同時(shí)判斷多個(gè)條件的時(shí)候,PHP還提供了elseif語句來擴(kuò)充需求。elseif語句被放置在if和else之間,以滿足多條件同時(shí)判斷的需求.if…else語句的流程圖如圖所示。【實(shí)例3-2】if…el6【實(shí)例3-3】根據(jù)輸入的百分制成績,輸出對(duì)應(yīng)的等級(jí)制。
<?phpheader("Content-Type:text/html;charset=gb2312"); $score=80;if($score>=90&&$score<=100){ echo"優(yōu)秀!";}elseif($score>=80){ echo"良好!";}elseif($score>=70){ echo"中等!";}elseif($score>=60){ echo"及格!";}elseif($score>=0){ echo"不及格!";}
?>
程序運(yùn)行結(jié)果為:良好!【實(shí)例3-3】根據(jù)輸入的百分制成績,輸出對(duì)應(yīng)的等級(jí)制。73.1.3switch語句if語句只有兩個(gè)分支可供選擇,如果遇到多分支的選擇,雖然可以使用嵌套的if語句來處理,但如果分支較多,會(huì)造成嵌套的if層數(shù)過多,程序過于冗長而且難以修改。switch語句是多分支選擇語句,利用它可以直接處理多分支選擇。switch語句的語法格式如下:
switch(表達(dá)式){case值1:語句塊1break;case值2:語句塊2break;…default:語句塊n
}
功能:執(zhí)行switch語句時(shí),先計(jì)算“表達(dá)式”的值,然后順序測試該值與哪一個(gè)case子句中的“值”相匹配。一旦找到,則執(zhí)行該case分支的語句塊,直到遇到break語句才跳出當(dāng)前的switch語句;如果沒有找到相匹配的值,則執(zhí)行default分支的語句塊(default為可選部分)。3.1.3switch語句功能:執(zhí)行switch語句時(shí),8【實(shí)例3-4】根據(jù)水果的英文單詞,輸出對(duì)應(yīng)的中文水果名。
<?phpheader("Content-Type:text/html;charset=gb2312");$fruit="banana";switch($fruit){ case"apple": echo"蘋果"; break; case"banana": echo"香蕉"; break; case"orange": echo"橘子"; break; case"pear": echo"梨子!"; break; default: "其他水果!";
}?>程序運(yùn)行結(jié)果為:香蕉
【實(shí)例3-4】根據(jù)水果的英文單詞,輸出對(duì)應(yīng)的中文水果名。93.2循環(huán)結(jié)構(gòu)所謂循環(huán),是指對(duì)某一個(gè)程序段重復(fù)執(zhí)行若干次,被重復(fù)執(zhí)行的程序部分稱為循環(huán)體。在PHP中,共有三種循環(huán)結(jié)構(gòu)語句:while循環(huán)語句、do…while循環(huán)語句和for循環(huán)語句。3.2.1while語句while循環(huán)語句的語法格式如下:
while(條件表達(dá)式){
語句塊}
功能:當(dāng)“條件表達(dá)式”的值為TRUE時(shí),程序?qū)?zhí)行循環(huán)體內(nèi)的“語句塊”,直到“條件表達(dá)式”的值為FALSE的時(shí)候才跳出循環(huán),執(zhí)行while循環(huán)后面的語句。3.2循環(huán)結(jié)構(gòu)10while循環(huán)語句的流程圖,如圖所示。說明:如果條件表達(dá)式的值始終為TRUE,則循環(huán)體內(nèi)的“語句塊”將一直被執(zhí)行下去,這就構(gòu)成了“死循環(huán)”。所以在循環(huán)體的語句塊中,必須要有改變條件表達(dá)式的語句,使循環(huán)能夠正常結(jié)束。while循環(huán)可以嵌套,但不允許出現(xiàn)交叉。while循環(huán)語句的流程圖,如圖所示。說明:11【實(shí)例3-5】小明今年12歲,他父親比他大30歲,問經(jīng)過多少年后,父親的年齡是小明年齡的2倍,那時(shí)父子的年齡各為多少?
<?php header("Content-Type:text/html;charset=gb2312"); $age=12; while($age*2<>$age+30){ $age=$age+1; } echo"經(jīng)過".($age-12)."年后,小明父親的年齡是小明年齡的2倍!</br>"; echo"小明的年齡為:".$age."</br>"; echo"小明父親的年齡為:".(30+$age);?>【實(shí)例3-5】小明今年12歲,他父親比他大30歲,問經(jīng)過多少123.2.2do…while語句do…while循環(huán)語句的語法格式如下:
do{
語句塊}while(條件表達(dá)式);
功能:程序先執(zhí)行循環(huán)體中的“語句塊”,然后再判斷“條件表達(dá)式”的值,如果值為TRUE,則繼續(xù)執(zhí)行循環(huán)體中的“語句塊”,直到“條件表達(dá)式”的值為FALSE時(shí)才跳出循環(huán),執(zhí)行do…while之后的語句。do…while循環(huán)語句的流程圖如圖3-5所示。說明:do…while循環(huán)和while循環(huán)非常相似,但do…while循環(huán)對(duì)條件的檢測是在執(zhí)行完循環(huán)體后才進(jìn)行,故do…while循環(huán)語句中的“語句塊”不管“條件表達(dá)式”成立與否,至少要被執(zhí)行一次。3.2.2do…while語句13【實(shí)例3-6】用do…while循環(huán)結(jié)構(gòu)實(shí)現(xiàn)實(shí)例3-5。
<?phpheader("Content-Type:text/html;charset=gb2312");$age=12;do{ $age=$age+1;}while($age*2<>$age+30);echo"經(jīng)過".($age-12)."年后,小明父親的年齡是小明年齡的2倍!</br>";echo"小明的年齡為:".$age."</br>";echo"小明父親的年齡為:".(30+$age);?>【實(shí)例3-6】用do…while循環(huán)結(jié)構(gòu)實(shí)現(xiàn)實(shí)例3-5。143.2.3for循環(huán)語句for循環(huán)語句多用于循環(huán)次數(shù)已知的程序結(jié)構(gòu),語法格式如下:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
語句塊}
說明:“表達(dá)式1”用于為循環(huán)變量賦初值。也允許在for循環(huán)之外為循環(huán)變量賦初值,此時(shí)“表達(dá)式1”可省略?!氨磉_(dá)式2”為循環(huán)條件,若其值為TRUE,則執(zhí)行循環(huán)體中的“語句塊”;若其值為FALSE,則跳出for循環(huán)?!氨磉_(dá)式3”用于改變循環(huán)變量的值。3個(gè)表達(dá)式都是任選項(xiàng),都可以省略,但分號(hào)不能省略。3.2.3for循環(huán)語句15【實(shí)例3-7】利用for循環(huán)語句計(jì)算1+2+3+…+100的值。
<?phpheader("Content-Type:text/html;charset=gb2312");$sum=0;for($i=1;$i<=100;$i++){ $sum=$sum+$i;}echo"1+2+3+…+100的和:".$sum;
?>【實(shí)例3-7】利用for循環(huán)語句計(jì)算1+2+3+…+100的163.3跳轉(zhuǎn)語句在程序運(yùn)行中,有時(shí)需要在結(jié)構(gòu)中改變程序的執(zhí)行語句,比如在switch語句中,使用break語句。為了更靈活地控制程序執(zhí)行,PHP提供了continue和break語句,用來實(shí)現(xiàn)程序的跳轉(zhuǎn)執(zhí)行。3.3.1continue語句continue語句的作用就是跳過本次循環(huán)中剩余的語句而執(zhí)行下一次循環(huán)。continue語句通常與if語句結(jié)合在一起,應(yīng)用在for循環(huán)、while循環(huán)以及do…while循環(huán)等循環(huán)語句中。3.3跳轉(zhuǎn)語句17【實(shí)例3-8】求1~100的偶數(shù)之和。
<?phpheader("Content-Type:text/html;charset=gb2312");$sum=0;for($i=1;$i<=100;$i++){ if($i%2<>0){ continue; } $sum=$sum+$i;}echo"1-100的偶數(shù)之和為:",$sum;
?>【實(shí)例3-8】求1~100的偶數(shù)之和。183.3.2break語句break語句在switch語句中使用時(shí),可以使程序跳出當(dāng)前的switch語句;當(dāng)break語句用于for循環(huán)、while循環(huán)以及do…while循環(huán)語句中時(shí),可以使程序終止于break所在層的循環(huán),即跳出當(dāng)前循環(huán),轉(zhuǎn)而執(zhí)行當(dāng)前循環(huán)之后的語句。3.3.2break語句19【實(shí)例3-9】判斷一個(gè)整數(shù)是否為素?cái)?shù)。所謂素?cái)?shù)即質(zhì)數(shù),就是只能被1和自身整除的整數(shù)。判斷整數(shù)n是否為素?cái)?shù),只需判斷n能否被從2到(int)sqrt(n)之間的整數(shù)整除即可。若n能被其中的一個(gè)整數(shù)整除,則n不是素?cái)?shù),否則n就是素?cái)?shù)。
<?phpheader("Content-Type:text/html;charset=gb2312");$n=1321;$k=(int)sqrt($n);for($i=2;$i<=$k;$i++){if($n%$i==0)break;}if($i>$k){echo$n,"是素?cái)?shù)!";}else{echo$n,"不是素?cái)?shù)!";}?> 【實(shí)例3-9】判斷一個(gè)整數(shù)是否為素?cái)?shù)。203.4包含語句PHP中有4個(gè)包含文件的語句,即由函數(shù)include()、include_once()、require()和require_once()所構(gòu)成的語句。include(或require)語句會(huì)獲取指定文件中存在的所有文本、代碼及標(biāo)記,并復(fù)制到使用include語句的文件中。如果在網(wǎng)站的多個(gè)頁面上引用相同的PHP、HTML或文本,使用包含文件可以避免重復(fù)編程,提高編程效率。這樣可以為所有頁面創(chuàng)建標(biāo)準(zhǔn)頁頭、頁腳或者菜單文件,當(dāng)頁頭、頁腳或菜單文件需要更新時(shí),只需要更新所包含的文件即可。3.4.1include()語句include的語法格式如下:
include(stringresource)
說明:include()語句將一個(gè)資源文件載入當(dāng)前PHP程序中,其效果和將該文件的內(nèi)容復(fù)制到include()出現(xiàn)的地方一樣。若沒有找到資源文件resource,include()語句返回FALSE;若找到資源文件resource,且resource沒有返回值,則include()返回整數(shù)1,否則返回資源文件resource的返回值。3.4包含語句3.4.1include()語句21【實(shí)例3-10】include()語句應(yīng)用示例。創(chuàng)建PHP程序文件footer.php,程序代碼如下:
<?php header("Content-Type:text/html;charset=gb2312"); echo"<p>Copyright2014-".date("Y")."</p>";?>
創(chuàng)建程序文件include.php,在include.php程序中包含footer.php程序文件。程序代碼如下:
<html><body><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><h1>歡迎訪問我們的首頁!</h1><p>一段文本。</p><p>一段文本。</p><?phpinclude("footer.php");?></body></html>【實(shí)例3-10】include()語句應(yīng)用示例。223.4.2require()語句require()語句與include()語句在語法格式及功能上基本相同。require()語句通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會(huì)先讀入require()語句引入的文件,使它變成PHP程序的一部分。require()語句與include()語句的區(qū)別在于:對(duì)include()來說,在執(zhí)行文件時(shí)每次都要進(jìn)行讀取和評(píng)估;而對(duì)于require()來說,文件只處理一次(即文件內(nèi)容替換require()語句)。這就意味著如果執(zhí)行多次代碼,則使用require()的效率比較高,如果每次執(zhí)行代碼時(shí)是讀取不同的文件,則適合使用include()語句。3.4.2require()語句23【實(shí)例3-11】require()語句應(yīng)用示例。創(chuàng)建程序菜單文件menu.php,程序代碼如下:
<?php header("Content-Type:text/html;charset=gb2312"); echo"<ahref=index.php>首頁</a>-<ahref=html_cource.php>HTML教程</a>-<ahref=css_cource.php>CSS教程</a>-<ahref=js_cource.php>JavaScript教程</a>-<ahref=php_cource.php>PHP教程</a>";?>
創(chuàng)建程序文件require.php,在該程序中通過require()語句包含menu.php程序文件。程序代碼如下:
<html><body><?php require("menu.php");?><h1>歡迎訪問我的首頁!</h1><p>一段文字</p><p>一段文字</p></body></html>
程序運(yùn)行后,在瀏覽器的地址欄輸入http://localhost/require.php,則運(yùn)行結(jié)果如圖1所示。【實(shí)例3-11】require()語句應(yīng)用示例。243.4.3include_once()語句include_once()語句是對(duì)include()語句的延伸,它的作用和include()語句幾乎一樣。唯一的區(qū)別就是include_once()語句會(huì)在導(dǎo)入文件前檢測該文件是否在該頁面的其他地方已被導(dǎo)入。如果有的話,就不會(huì)重復(fù)導(dǎo)入該文件。3.4.3include_once()語句25【實(shí)例3-13】include_once()語句示例。創(chuàng)建header.php程序文件,程序代碼如下:
<?php header("Content-Type:text/html;charset=gb2312"); echo"當(dāng)前日期:",date("Y-m-d");
?>
創(chuàng)建程序文件example_3-13.php,程序代碼如下:
<?php include_once("header.php");?>【實(shí)例3-13】include_once()語句示例。263.4.4require_once()語句require_once()語句是對(duì)require()語句的延伸,它的功能和require()語句幾乎一樣。區(qū)別在于require_once()語句會(huì)先檢查要導(dǎo)入的文件是否已經(jīng)在本程序的其他地方被導(dǎo)入過,如果有,則不會(huì)再次重復(fù)調(diào)用該文件。如果在同一程序中使用require_once()語句兩次調(diào)用同一文件,那么第一次調(diào)用時(shí)會(huì)有輸出結(jié)果,第二次調(diào)用則不會(huì)有輸出結(jié)果。【實(shí)例3-14】require_once()語句應(yīng)用示例。
<?php require_once("header.php"); echo"HelloPHP!"; require_once("header.php");?>3.4.4require_once()語句【實(shí)例3-1273.5綜合實(shí)訓(xùn)案例本節(jié)主要介紹利用循環(huán)結(jié)構(gòu)語句制作九九乘法表的方法。1.分析設(shè)置一個(gè)HTML表格table,在表格中的每一個(gè)單元格<td>中顯示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際發(fā)展援助中“氣候資金”與“傳統(tǒng)ODA”的統(tǒng)計(jì)重疊問題-基于2024年OECD DAC新核算指南爭議
- 2025年黃山太平經(jīng)濟(jì)開發(fā)區(qū)投資有限公司公開招聘高管人員備考筆試試題及答案解析
- 2025重慶梁平區(qū)事業(yè)單位面向應(yīng)屆生考核招聘68人備考筆試題庫及答案解析
- 2025新疆青河縣社保中心綜柜崗位見習(xí)生招聘1人模擬筆試試題及答案解析
- 2025年山西省長治市人民醫(yī)院公開招聘碩士以上專業(yè)技術(shù)工作人員模擬筆試試題及答案解析
- 《解決問題的策略》數(shù)學(xué)課件教案
- 2025廣西科學(xué)院分析測試中心分子細(xì)胞生物學(xué)團(tuán)隊(duì)招1人參考考試試題及答案解析
- 2025年皖北煤電集團(tuán)公司掘進(jìn)工招聘380名考試筆試備考題庫及答案解析
- 2026天津市和平區(qū)事業(yè)單位招聘38人備考筆試試題及答案解析
- 2026年山西省選調(diào)生招錄(面向西安電子科技大學(xué))參考考試題庫及答案解析
- 探放水工崗位作業(yè)風(fēng)險(xiǎn)專項(xiàng)培訓(xùn)講義
- 黃委會(huì)《水利及黃河基礎(chǔ)知識(shí)》考點(diǎn)題庫
- 自流平環(huán)氧地坪漆地面施工要求
- 升、降壓直流斬波電路及matlab仿真
- 2025甘肅酒泉市公安局招聘留置看護(hù)崗位警務(wù)輔助人員30人(第三批)筆試考試備考試題及答案解析
- 口腔診所醫(yī)保政策對(duì)應(yīng)的內(nèi)部管理制度和財(cái)務(wù)制度
- 農(nóng)行助力貸款協(xié)議書
- 2024-2025學(xué)年貴州省六盤水市高一(上)期末英語試卷
- 煉焦機(jī)械與設(shè)備試題題庫(300) 與答案
- 儲(chǔ)能電站運(yùn)維管理方案
- 2025年南寧鐵路機(jī)考題庫及答案
評(píng)論
0/150
提交評(píng)論