版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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綜合實訓案例第3章PHP流程控制語句學習目的與要求熟練掌握選擇結(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ù)條件進行邏輯判斷,以決定當前程序的走向,從而得到不同的結(jié)果。3.1.1if語句if語句的語法格式如下:
if(條件表達式){
語句塊}
說明:當“語句塊”為一條語句時,可省略“{}”。功能:當“條件表達式”的值為TRUE時,執(zhí)行語句塊,否則執(zhí)行if語句后面的語句。問題?問題?
給你2個數(shù)$a=9; $b=8;,用程序告訴我$a是否大于$b?
怎么弄?if語句的流程圖如圖所示。【實例3-1】if語句示例。
<?php $a=9; $b=8; if($a>$b){ echo"a大于b"; }?>問題?問題?
給你1個數(shù)$a=9 用程序告訴它是奇數(shù)還是偶數(shù)?
怎么弄?3.1.2if…else語句if…else語句是一種二分支選擇語句。else的功能就是當條件表達式的值為FALSE時執(zhí)行其他的語句。if…else語句的語法格式如下:
if(條件表達式){
語句塊1}else{
語句塊2}
說明:當“語句塊1”或“語句塊2”為單條語句時,可省略“{}”。功能:當“條件表達式”的值為TRUE時,執(zhí)行“語句塊1”,否則將執(zhí)行“語句塊2”。if…else語句的流程圖如圖所示?!緦嵗?-2】if…else語句示例。
<?php $a=9; if($a%2==0){ echo"a是偶數(shù)"; }else{ echo"a是奇數(shù)"; }?>
問題??問題:根據(jù)輸入的分數(shù)判斷出等級[90100]分以上-----優(yōu)秀[8090)分以上-----良好[7080)分-----中等[6070)分-----及格[060)分-----不及格【實例3-3】根據(jù)輸入的百分制成績,輸出對應(yīng)的等級制。
<?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"不及格!";}
?>
程序運行結(jié)果為:良好!增加下面功能?當用戶輸入大于100或小于0的數(shù)時,給出提示:
你輸入的分數(shù)不在0-100范圍,請重新輸入
怎么做?3.1.3switch語句if語句只有兩個分支可供選擇,如果遇到多分支的選擇,雖然可以使用嵌套的if語句來處理,但如果分支較多,會造成嵌套的if層數(shù)過多,程序過于冗長而且難以修改。switch語句是多分支選擇語句,利用它可以直接處理多分支選擇。switch語句的語法格式如下:switch(表達式){case值1:語句塊1break;case值2:語句塊2break;…default:語句塊n
}
功能:執(zhí)行switch語句時,先計算“表達式”的值,然后順序測試該值與哪一個case子句中的“值”相匹配。一旦找到,則執(zhí)行該case分支的語句塊,直到遇到break語句才跳出當前的switch語句;如果沒有找到相匹配的值,則執(zhí)行default分支的語句塊(default為可選部分)。【實例3-4】根據(jù)水果的英文單詞,輸出對應(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: "其他水果!";
}?>程序運行結(jié)果為:香蕉
【實例3-3】根據(jù)輸入的百分制成績,輸出對應(yīng)的等級制。
<?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方式實現(xiàn)??【實例3-3】根據(jù)輸入的百分制成績,輸出對應(yīng)的等級制。
【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"不及格!";}
?>問題???計算1+2+3+…+100的值?3.2循環(huán)結(jié)構(gòu)所謂循環(huán),是指對某一個程序段重復執(zhí)行若干次,被重復執(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(條件表達式){
語句塊}
功能:當“條件表達式”的值為TRUE時,程序?qū)?zhí)行循環(huán)體內(nèi)的“語句塊”,直到“條件表達式”的值為FALSE的時候才跳出循環(huán),執(zhí)行while循環(huán)后面的語句。問題???計算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)語句的流程圖,如圖所示。說明:如果條件表達式的值始終為TRUE,則循環(huán)體內(nèi)的“語句塊”將一直被執(zhí)行下去,這就構(gòu)成了“死循環(huán)”。所以在循環(huán)體的語句塊中,必須要有改變條件表達式的語句,使循環(huán)能夠正常結(jié)束。while循環(huán)可以嵌套,但不允許出現(xiàn)交叉?!緦嵗?-5】小明今年12歲,他父親比他大30歲,問經(jīng)過多少年后,父親的年齡是小明年齡的2倍,那時父子的年齡各為多少?
<?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(條件表達式);
功能:程序先執(zhí)行循環(huán)體中的“語句塊”,然后再判斷“條件表達式”的值,如果值為TRUE,則繼續(xù)執(zhí)行循環(huán)體中的“語句塊”,直到“條件表達式”的值為FALSE時才跳出循環(huán),執(zhí)行do…while之后的語句。do…while循環(huán)語句的流程圖如圖3-5所示。說明:do…while循環(huán)和while循環(huán)非常相似,但do…while循環(huán)對條件的檢測是在執(zhí)行完循環(huán)體后才進行,故do…while循環(huán)語句中的“語句塊”不管“條件表達式”成立與否,至少要被執(zhí)行一次?!緦嵗?-6】用do…while循環(huán)結(jié)構(gòu)實現(xiàn)實例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(表達式1;表達式2;表達式3){
語句塊}
說明:“表達式1”用于為循環(huán)變量賦初值。也允許在for循環(huán)之外為循環(huán)變量賦初值,此時“表達式1”可省略?!氨磉_式2”為循環(huán)條件,若其值為TRUE,則執(zhí)行循環(huán)體中的“語句塊”;若其值為FALSE,則跳出for循環(huán)。“表達式3”用于改變循環(huán)變量的值。3個表達式都是任選項,都可以省略,但分號不能省略?!緦嵗?-7】利用for循環(huán)語句計算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)語句在程序運行中,有時需要在結(jié)構(gòu)中改變程序的執(zhí)行語句,比如在switch語句中,使用break語句。為了更靈活地控制程序執(zhí)行,PHP提供了continue和break語句,用來實現(xiàn)程序的跳轉(zhuǎn)執(zhí)行。3.3.1continue語句------跳出當次循環(huá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)語句中。【實例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語句------跳出當次循環(huá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語句------跳出整個循環(huán)break語句在switch語句中使用時,可以使程序跳出當前的switch語句;當break語句用于for循環(huán)、while循環(huán)以及do…while循環(huán)語句中時,可以使程序終止于break所在層的循環(huán),即跳出當前循環(huán),轉(zhuǎn)而執(zhí)行當前循環(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語句------跳出整個循環(huán)
碰到break語句
,就直接退出循環(huán)!學校國慶要改變網(wǎng)站的風格怎么做才能把所有頁面的風格都改成國慶的喜慶風格呢?3.4包含語句PHP中有4個包含文件的語句,即由函數(shù)include()、include_once()、require()和require_once()所構(gòu)成的語句。include(或require)語句會獲取指定文件中存在的所有文本、代碼及標記,并復制到使用include語句的文件中。如果在網(wǎng)站的多個頁面上引用相同的PHP、HTML或文本,使用包含文件可以避免重復編程,提高編程效率。這樣可以為所有頁面創(chuàng)建標準頁頭、頁腳或者菜單文件,當頁頭、頁腳或菜單文件需要更新時,只需要更新所包含的文件即可。3.4.1include()語句include的語法格式如下:
include(stringresource)
說明:include()語句將一個資源文件載入當前PHP程序中,其效果和將該文件的內(nèi)容復制到include()出現(xiàn)的地方一樣。若沒有找到資源文件resource,include()語句返回FALSE;若找到資源文件resource,且resource沒有返回值,則include()返回整數(shù)1,否則返回資源文件resource的返回值?!緦嵗?-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í)行前,就會先讀入require()語句引入的文件,使它變成PHP程序的一部分。require()語句與include()語句的區(qū)別在于:
對include()來說,在執(zhí)行文件時每次都要進行讀取和評估;而對于require()來說,文件只處理一次(即文件內(nèi)容替換require()語句)。這就意味著如果執(zhí)行多次代碼,則使用require()的效率比較高,如果每次執(zhí)行代碼時是讀取不同的文件,則適合使用include()語句?!緦嵗?-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>
程序運行后,在瀏覽器的地址欄輸入,則運行結(jié)果如圖1所示。3.4.3include_once()語句include_once()語句是對include()語句的延伸,它的作用和include()語句幾乎一樣。唯一的區(qū)別就是include_once()語句會在導入文件前檢測該文件是否在該頁面的其他地方已被導入。如果有的話,就不會重復導入該文件?!緦嵗?-13】include_once()語句示例。創(chuàng)建header.php程序文件,程序代碼如下:
<?php header("Content-Type:text/html;charset=gb2312"); echo"當前日期:",date("Y-m-d");
?>
創(chuàng)建程序文件example_3-13.php,程序代碼如下:
<?php include_once("header.php");?>3.4.4require_once()語句require_once()語句是對require()語句的延伸,它的功能和require()語句幾乎一樣。區(qū)別在于require_once()語句會先檢查要導入的文件是否已經(jīng)在本程序的其他地方被導入過,如果有,則不會再次重復調(diào)用該文件。如果在同一程序中使用require_once()語句兩次調(diào)用同一文件,那么第一次調(diào)用時會有輸出結(jié)果,第二次調(diào)用則不會有輸出結(jié)果?!緦嵗?-14】require_once()語句應(yīng)用示例。
<?php require_once("header.php"); echo"HelloPHP!"; require_once("header.php");?>3.5綜合實訓案例(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 照片濾鏡調(diào)色課程設(shè)計
- 二手車交易平臺營業(yè)員銷售總結(jié)
- 春游課程設(shè)計
- 家具設(shè)計師工作總結(jié)
- 風險防控方案計劃
- 法律服務(wù)行業(yè)風險防范方案
- 化工行業(yè)衛(wèi)生防護要點
- 物流運輸行業(yè)咨詢服務(wù)經(jīng)驗總結(jié)
- 藥店衛(wèi)生管理措施
- 金融領(lǐng)域的投資顧問職責
- 股權(quán)協(xié)議書和合伙人協(xié)議書
- 河南省駐馬店市2023-2024學年高一上學期1月期末語文試題(含答案解析)
- 幼兒園名師公開課:小班安全《超市安全我知道》微課件
- MOOC 英文技術(shù)寫作-東南大學 中國大學慕課答案
- 2022年10月自考00850廣告設(shè)計基礎(chǔ)試題及答案含解析
- 工會委員會會議紀要
- 《水電工程水文設(shè)計規(guī)范》(NB-T 10233-2019)
- 2024年1月電大國家開放大學期末考試試題及答案:法理學
- (高清版)DZT 0284-2015 地質(zhì)災害排查規(guī)范
- 駕駛員勞務(wù)派遣車輛管理方案
- 電纜大和小修危險源辨識和控制措施
評論
0/150
提交評論