第3章php流程控制語句_第1頁
第3章php流程控制語句_第2頁
第3章php流程控制語句_第3頁
第3章php流程控制語句_第4頁
第3章php流程控制語句_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論