




版權(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流程控制語句學(xué)習(xí)目的與要求熟練掌握選擇結(jié)構(gòu)語句if..else/switch熟練掌握循環(huán)結(jié)構(gòu)語句while/for熟練掌握包含語句include3.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語句后面的語句。問題?問題?
給你2個(gè)數(shù)$a=9; $b=8;,用程序告訴我$a是否大于$b?
怎么弄?if語句的流程圖如圖所示?!緦?shí)例3-1】if語句示例。
<?php $a=9; $b=8; if($a>$b){ echo"a大于b"; }?>問題?問題?
給你1個(gè)數(shù)$a=9 用程序告訴它是奇數(shù)還是偶數(shù)?
怎么弄?3.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”。if…else語句的流程圖如圖所示?!緦?shí)例3-2】if…else語句示例。
<?php $a=9; if($a%2==0){ echo"a是偶數(shù)"; }else{ echo"a是奇數(shù)"; }?>
問題??問題:根據(jù)輸入的分?jǐn)?shù)判斷出等級(jí)[90100]分以上-----優(yōu)秀[8090)分以上-----良好[7080)分-----中等[6070)分-----及格[060)分-----不及格【實(shí)例3-3】根據(jù)輸入的百分制成績,輸出對(duì)應(yīng)的等級(jí)制。
<?php $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é)果為:良好!增加下面功能?當(dāng)用戶輸入大于100或小于0的數(shù)時(shí),給出提示:
你輸入的分?jǐn)?shù)不在0-100范圍,請(qǐng)重新輸入
怎么做?3.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為可選部分)?!緦?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-3】根據(jù)輸入的百分制成績,輸出對(duì)應(yīng)的等級(jí)制。
<?php $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"不及格!";}
?>
改為用switch方式實(shí)現(xiàn)??【實(shí)例3-3】根據(jù)輸入的百分制成績,輸出對(duì)應(yīng)的等級(jí)制。
【switch方式】<?php$score=80;switch($score){ case$score>=90&&$score<=100: echo"優(yōu)秀!"; break; case$score>=80: echo"良好!"; break; case$score>=70: echo"中等!"; break; case$score>=60: echo"及格!"; break; case$score>=0: echo"不及格!";}
?>問題???計(jì)算1+2+3+…+100的值?3.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)后面的語句。問題???計(jì)算1+2+3+…+100的值?<?php$i=1;$sum=0;while($i<=100){ $sum=$sum+$i; $i++;}echo"1+2+3+...+100的和為:".$sum;?>
while循環(huán)語句的流程圖,如圖所示。說明:如果條件表達(dá)式的值始終為TRUE,則循環(huán)體內(nèi)的“語句塊”將一直被執(zhí)行下去,這就構(gòu)成了“死循環(huán)”。所以在循環(huán)體的語句塊中,必須要有改變條件表達(dá)式的語句,使循環(huán)能夠正常結(jié)束。while循環(huán)可以嵌套,但不允許出現(xiàn)交叉?!緦?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);?>3.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í)行一次?!緦?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);?>3.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)不能省略?!緦?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;
?>3.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語句------跳出當(dāng)次循環(huán),進(jìn)入下一次循環(huán)continue語句的作用就是跳過本次循環(huán)中剩余的語句而執(zhí)行下一次循環(huán)。continue語句通常與if語句結(jié)合在一起,應(yīng)用在for循環(huán)、while循環(huán)以及do…while循環(huán)等循環(huán)語句中?!緦?shí)例3-8】求1~100的偶數(shù)之和。
<?php$sum=0;for($i=1;$i<=100;$i++){ if($i%2<>0){
continue; } $sum=$sum+$i;}echo"1-100的偶數(shù)之和為:",$sum;
?>continue語句------跳出當(dāng)次循環(huán),進(jìn)入下一次循環(huán)
循環(huán)體內(nèi)continue語句
后面余下的語句就不執(zhí)行了!
猜猜下面的輸出結(jié)果是什么?<?php$sum=0;for($i=1;$i<=100;$i++){ if($i%2<>0){
break; } $sum=$sum+$i;}echo"1-100的偶數(shù)之和為:",$sum;
?>3.3.2break語句------跳出整個(gè)循環(huán)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)之后的語句。<?phpheader("Content-Type:text/html;charset=gb2312");$sum=0;for($i=1;$i<=100;$i++){ if($i%2<>0){
break; } $sum=$sum+$i;}echo"1-100的偶數(shù)之和為:",$sum;
?>break語句------跳出整個(gè)循環(huán)
碰到break語句
,就直接退出循環(huán)!學(xué)校國慶要改變網(wǎng)站的風(fēng)格怎么做才能把所有頁面的風(fēng)格都改成國慶的喜慶風(fēng)格呢?3.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的返回值?!緦?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>3.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()語句?!緦?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)行后,在瀏覽器的地址欄輸入,則運(yùn)行結(jié)果如圖1所示。3.4.3include_once()語句include_once()語句是對(duì)include()語句的延伸,它的作用和include()語句幾乎一樣。唯一的區(qū)別就是include_once()語句會(huì)在導(dǎo)入文件前檢測該文件是否在該頁面的其他地方已被導(dǎo)入。如果有的話,就不會(huì)重復(fù)導(dǎo)入該文件?!緦?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");?>3.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.5綜合實(shí)訓(xùn)案例(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流地產(chǎn)合伙人協(xié)議書
- 資金股東協(xié)議書
- 遺送供養(yǎng)協(xié)議書
- 穩(wěn)崗協(xié)商協(xié)議書
- 經(jīng)營浴場協(xié)議書
- 自行施工協(xié)議書
- 寧波公積金委托協(xié)議書
- 酒店員工協(xié)議書
- 委托生產(chǎn)衛(wèi)生紙協(xié)議書
- 生活類救災(zāi)物資協(xié)議書
- T-CSPSTC 47-2020 裝配式機(jī)電工程BIM施工應(yīng)用規(guī)程
- 河北對(duì)口單招第十類職業(yè)適應(yīng)性測試(計(jì)算機(jī))-第四章文字處理軟件應(yīng)用課件-
- 電力行業(yè)技術(shù)服務(wù)合同
- 2025年中國陪診服務(wù)行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報(bào)告
- 高考作文如何做到立意新穎深刻公開課獲獎(jiǎng)?wù)n件省賽課一等獎(jiǎng)?wù)n件
- 05J927-1汽車庫建筑構(gòu)造圖集
- 工業(yè)自動(dòng)化與人工智能融合
- 湖北省石首楚源“源網(wǎng)荷儲(chǔ)”一體化項(xiàng)目可研報(bào)告
- 回歸課標(biāo)+重視教材+從容備考(章建躍)
- 電大??啤居?jì)算機(jī)平面設(shè)計(jì)(二)】網(wǎng)絡(luò)課形考任務(wù)2答案
- 藝術(shù)鑒賞學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論