PHP程序設(shè)計項(xiàng)目化教程課件 項(xiàng)目3 匯率計算器-流程控制_第1頁
PHP程序設(shè)計項(xiàng)目化教程課件 項(xiàng)目3 匯率計算器-流程控制_第2頁
PHP程序設(shè)計項(xiàng)目化教程課件 項(xiàng)目3 匯率計算器-流程控制_第3頁
PHP程序設(shè)計項(xiàng)目化教程課件 項(xiàng)目3 匯率計算器-流程控制_第4頁
PHP程序設(shè)計項(xiàng)目化教程課件 項(xiàng)目3 匯率計算器-流程控制_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

匯率計算器

——流程控制項(xiàng)目3在探索全球經(jīng)濟(jì)一體化的發(fā)展軌跡時,同學(xué)們對全球各地的貨幣體系表現(xiàn)出了極大的熱情。為了幫助大家更精確地掌握各種貨幣間的換算邏輯,張華想要打造一款匯率計算器。通過這款匯率計算器,同學(xué)們能夠一目了然地看清不同貨幣間的價值差異,進(jìn)而制定出更加明智的經(jīng)濟(jì)決策和財務(wù)規(guī)劃。匯率計算器理解PHP中的順序結(jié)構(gòu)及其在程序中的執(zhí)行順序;學(xué)習(xí)分支結(jié)構(gòu),包括單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu),以及它們的嵌套使用;掌握循環(huán)結(jié)構(gòu),包括for循環(huán)結(jié)構(gòu)、while循環(huán)結(jié)構(gòu)和do-while循環(huán)結(jié)構(gòu);理解異常處理的基本概念,學(xué)習(xí)在PHP中使用try-catch塊來捕獲和處理異常;掌握文件包含語句,包括include語句和require語句。能夠正確使用PHP中的順序結(jié)構(gòu)編寫程序,確保代碼按照預(yù)期執(zhí)行;能夠編寫分支結(jié)構(gòu),根據(jù)不同條件執(zhí)行不同的代碼塊;能夠使用循環(huán)結(jié)構(gòu),在程序中實(shí)現(xiàn)重復(fù)執(zhí)行特定代碼的功能;能夠運(yùn)用異常處理機(jī)制,捕獲和處理程序運(yùn)行中的異常情況;能夠正確使用文件包含技巧,合理地在項(xiàng)目中使用include語句和require語句,提高代碼的可維護(hù)性。培養(yǎng)良好的編程習(xí)慣,能夠編寫結(jié)構(gòu)清晰、易讀易懂的代碼;提升邏輯思維能力,能夠合理設(shè)計程序的流程控制結(jié)構(gòu);增強(qiáng)問題解決能力,能夠針對程序中的異常情況編寫合適的異常處理代碼;強(qiáng)化安全意識,了解在文件包含過程中可能出現(xiàn)的安全風(fēng)險,并采取相應(yīng)措施預(yù)防。流程控制簡述分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語句文件包含語句異常處理流程控制簡述PART01流程控制是編程中的核心概念,它決定了代碼的執(zhí)行順序和邏輯。通過流程控制,開發(fā)者能夠管理代碼的執(zhí)行順序,實(shí)現(xiàn)程序在不同條件下的靈活響應(yīng)。流程控制結(jié)構(gòu)可以分為3種基本類型:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在順序結(jié)構(gòu)中,程序會嚴(yán)格按照代碼的順序,一行接一行地執(zhí)行,不遺漏任何一句指令。3.1流程控制簡述分支結(jié)構(gòu)PART02分支結(jié)構(gòu)又稱為選擇結(jié)構(gòu)、條件結(jié)構(gòu),是一種重要的流程控制結(jié)構(gòu),它允許程序根據(jù)特定條件選擇不同的執(zhí)行路徑。常見的分支結(jié)構(gòu)主要有單分支結(jié)構(gòu)(if語句)雙分支結(jié)構(gòu)(if...else語句)多分支結(jié)構(gòu)(if...elseif...else語句和switch語句)3.2分支結(jié)構(gòu)if語句是單分支結(jié)構(gòu)的基礎(chǔ),其基本語法格式如下。其中,條件表達(dá)式的結(jié)果是布爾型的值,只有false和true兩個可能;由{}括起來的子語句塊代表的是代碼片段,可以是任意的代碼。3.2.1單分支結(jié)構(gòu)if(條件表達(dá)式){

子語句塊}下面的代碼可根據(jù)年齡判斷是否成年,并輸出相應(yīng)的信息。在這個例子中,因?yàn)?age的值是22,大于18,所以條件為真,程序會輸出“該同學(xué)已成年”。運(yùn)行結(jié)果如下圖所示。3.2.1單分支結(jié)構(gòu)$age=22;if($age>=18){echo'該同學(xué)已成年';}在編寫程序的過程中,可以使用多個單分支結(jié)構(gòu),進(jìn)行不同語句的輸出控制。此外,當(dāng)if語句的子語句塊中只有一條語句時,{}可以省略。運(yùn)行結(jié)果如圖所示。3.2.1單分支結(jié)構(gòu)$a=10;$b=20;if($a>$b)echo'$a大于$b';if($a<$b)echo‘$a小于$b';if($a==$b)echo'$a等于$b';if...else語句實(shí)現(xiàn)雙分支結(jié)構(gòu),它提供了兩種可能的執(zhí)行路徑:如果條件為真,則執(zhí)行if語句后{}內(nèi)的代碼(子語句塊1);如果條件為假,則執(zhí)行else語句后{}內(nèi)的代碼(子語句塊2)3.2.2雙分支結(jié)構(gòu)if(條件表達(dá)式){

子語句塊1}else{

子語句塊2}對于3.2.1節(jié)中判斷是否成年的程序,可以使用雙分支結(jié)構(gòu)進(jìn)行優(yōu)化。運(yùn)行結(jié)果如下圖所示。3.2.2雙分支結(jié)構(gòu)$age=17;if($age>=18){echo'該同學(xué)已成年';}else{echo'該同學(xué)未成年';}假設(shè)有一個場景,某單位規(guī)定男職工60歲退休,女職工55歲退休,現(xiàn)在我們要判斷一名58歲的女職工是否已經(jīng)退休,思考過程如下。3.2.3分支結(jié)構(gòu)的嵌套應(yīng)用要實(shí)現(xiàn)這個過程,需要在if語句的語句塊和else語句的語句塊中再使用if...else語句,這就是分支結(jié)構(gòu)嵌套。3.2.3分支結(jié)構(gòu)的嵌套應(yīng)用$age=58;$sex='女';if($sex=='男'){if($age>=60){echo'該男職工已退休';}else{echo'該男職工未退休';}}else{if($age>=55){echo'該女職工已退休';}else{echo'該女職工未退休';}}旅行社為了吸引家庭客戶,為不同年齡段的兒童提供了不同旅行費(fèi)折扣,規(guī)則是5歲以下免費(fèi),5歲至12歲半價,12歲以上全價。使用分支結(jié)構(gòu)的嵌套來實(shí)現(xiàn)折扣計算。【案例實(shí)踐3-1】兒童旅行費(fèi)折扣問題【案例實(shí)踐3-1】兒童旅行費(fèi)折扣問題<?php$age=8;$discount="";if($age<5)

$discount="免費(fèi)";else{

if($age<=12)

$discount="半價";

else

$discount="全價";}echo"根據(jù)年齡{$age}歲,該兒童可以享受{$discount}的旅行費(fèi)折扣。";?>【案例實(shí)踐3-1】兒童旅行費(fèi)折扣問題啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件,具體如圖所示if...elseif...else語句可實(shí)現(xiàn)多分支結(jié)構(gòu),當(dāng)if語句中指定的條件都不滿足時,可以通過elseif語句指定另一個條件。其語法格式如下。3.2.4多分支結(jié)構(gòu)——if...elseif...else語句if(條件表達(dá)式1){//執(zhí)行語句塊1}elseif(條件表達(dá)式2){//執(zhí)行語句塊2}elseif(條件表達(dá)式3){//執(zhí)行語句塊3}//可以根據(jù)需要繼續(xù)添加更多的elseif條件else{//當(dāng)前面的條件都不滿足時,執(zhí)行此語句塊}if...elseif...else語句的流程如下。3.2.4多分支結(jié)構(gòu)——if...elseif...else語句使用if...elseif...else語句改寫案例實(shí)踐3-1中的代碼。3.2.4多分支結(jié)構(gòu)——if...elseif...else語句$age=8;$discount="";if($age<5){$discount="免費(fèi)";}elseif($age<=12){$discount="半價";}else{$discount="全價";}echo"根據(jù)年齡{$age}歲,該兒童可以享受{$discount}的旅行費(fèi)折扣。";與分支結(jié)構(gòu)嵌套的流程對比如圖所示3.2.4多分支結(jié)構(gòu)——if...elseif...else語句本案例實(shí)踐將通過if...elseif...else語句實(shí)現(xiàn)分時問候,根據(jù)不同的時間段顯示不同的內(nèi)容。【案例實(shí)踐3-2】分時問候<?php$hour=date('H');//獲取當(dāng)前整點(diǎn)時間$message="";if($hour<6)

$message="真早??!三更燈火五更雞,正是男兒讀書時。";elseif($hour<9)

$message="早上好!一年之計在于春,一日之計在于晨。";elseif($hour<12)

$message="上午好!長風(fēng)破浪會有時,直掛云帆濟(jì)滄海。加油!";elseif($hour<18)

$message="下午好!及時當(dāng)勉勵,歲月不待人。";elseif($hour<22)

$message="晚上好!有余力,則學(xué)文。業(yè)余充電!";else

$message="深夜了要休息了!一張一弛,文武之道也。";echo"現(xiàn)在是{$hour}點(diǎn),{$message}";【案例實(shí)踐3-2】分時問候啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件,具體如圖所示在分支結(jié)構(gòu)中,else語句用于處理所有前面條件都不滿足的情況。在多分支結(jié)構(gòu)中,elseif語句實(shí)際上表示的是“否則如果”,即前一個if或elseif條件不滿足時的條件判斷語句。例如,使用下表對一個學(xué)生的考試成績進(jìn)行等級劃分。深入理解分支結(jié)構(gòu)中else語句的含義我們根據(jù)表3-1中的描述,書寫完整的條件表達(dá)式,使用多分支結(jié)構(gòu)實(shí)現(xiàn),簡寫代碼如下。深入理解分支結(jié)構(gòu)中else語句的含義if($score>=90)$grade="優(yōu)秀";elseif($score>=80)$grade="良好";elseif($score>=70)$grade="中等";elseif($score>=60)$grade="及格";else//成績小于60$grade="不及格";echo"{$score}分的成績等級為:{$grade}。";對于完整的條件表達(dá)式來說,如下圖所示,無論怎樣調(diào)整順序都不會影響結(jié)果。而簡寫后的代碼如果不是按照順序書寫的就會出錯,比如我們把70分和80分這兩個條件調(diào)換一下,左邊的程序顯示的等級為“良好”,而右邊的程序顯示的等級為“中等”。深入理解分支結(jié)構(gòu)中else語句的含義switch語句允許我們根據(jù)一個表達(dá)式的值來選擇不同的代碼塊執(zhí)行,其基本結(jié)構(gòu)如下。3.2.5多分支結(jié)構(gòu)——switch語句switch(表達(dá)式){case值1://當(dāng)表達(dá)式的值等于值1時執(zhí)行的代碼

break;case值2://當(dāng)表達(dá)式的值等于值2時執(zhí)行的代碼

break;...//可以有更多的case分支

default://當(dāng)沒有任何case匹配時執(zhí)行的代碼}switch語句的多分支結(jié)構(gòu)流程如圖所示。3.2.5多分支結(jié)構(gòu)——switch語句使用switch語句對案例3-2分時問候進(jìn)行改寫,核心代碼如下。3.2.5多分支結(jié)構(gòu)——switch語句switch($hour){

case

0:

case

1:

case

2:

case

3:

case

4:

case

5:

$message="真早?。∪鼰艋鹞甯u,正是男兒讀書時。";

break;

case

6:

case

7:

case

8:

$message="早上好!一年之計在于春,一日之計在于晨。";

break;

...//可以繼續(xù)添加其他時間段的case分支

default:

$message="深夜了要休息了!一張一弛,文武之道也。";

break;

}本案例實(shí)踐根據(jù)學(xué)生的課余活動給出積極向上的反饋,無論是參與運(yùn)動、藝術(shù)活動還是參加志愿服務(wù),這些活動都對學(xué)生有積極的影響。使用switch語句?!景咐龑?shí)踐3-3】課余活動反饋<?php$activity="志愿服務(wù)";//學(xué)生的課余活動,如運(yùn)動、藝術(shù)、志愿服務(wù)等

switch($activity){

case

"運(yùn)動":

echo"運(yùn)動讓你更健康,更有活力!";

break;

case

"藝術(shù)":

echo"藝術(shù)點(diǎn)亮你的生活,展現(xiàn)你的創(chuàng)造力!";

break;

case

"志愿服務(wù)":

echo"志愿服務(wù),傳遞愛與溫暖,你真棒!";

break;

default:

echo"你的課余生活真多彩,繼續(xù)保持哦!";

break;}【案例實(shí)踐3-3】課余活動反饋啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件,具體如圖所示在實(shí)際編程中,我們有時需要結(jié)合使用switch語句和if語句來處理更復(fù)雜的條件邏輯3.2.6switch語句和if語句結(jié)合的結(jié)構(gòu)$temperature=20;if($temperature>=0&&$temperature<=20){switch($temperature){case0:echo"溫度是0℃";break;case10:echo"溫度是10℃";break;case20:echo"溫度是20℃";break;default:echo"溫度為0℃~20℃";}}else{echo"溫度超出檢測范圍";}循環(huán)結(jié)構(gòu)PART03在日常編程任務(wù)中,經(jīng)常需要反復(fù)執(zhí)行某些操作,這時使用循環(huán)結(jié)構(gòu)可以大大簡化代碼,避免冗余,提升執(zhí)行效率。循環(huán)結(jié)構(gòu)主要包括4個部分:初始化設(shè)置、循環(huán)條件、循環(huán)變量的更新(迭代),以及循環(huán)體本身。在PHP中,循環(huán)結(jié)構(gòu)主要有3類,分別是for循環(huán)結(jié)構(gòu)、while循環(huán)結(jié)構(gòu)和do...while循環(huán)結(jié)構(gòu)。3.3循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)常用于事先已知循環(huán)次數(shù)的重復(fù)任務(wù)單,其基本語法格式如下。其中,初始化表達(dá)式負(fù)責(zé)設(shè)置循環(huán)控制變量的初始值,循環(huán)條件表達(dá)式定義循環(huán)繼續(xù)執(zhí)行的條件,而迭代表達(dá)式規(guī)定循環(huán)控制變量在每次迭代時的更新規(guī)則。for循環(huán)結(jié)構(gòu)中圓括號內(nèi)的每個表達(dá)式都可以為空,但必須保留分號分隔符。3.3.1for循環(huán)結(jié)構(gòu)for(初始化表達(dá)式;循環(huán)條件表達(dá)式;迭代表達(dá)式){

循環(huán)體}for循環(huán)結(jié)構(gòu)其流程如圖所示。3.3.1for循環(huán)結(jié)構(gòu)for循環(huán)結(jié)構(gòu)具體應(yīng)用示例代碼如下。在上述代碼中,變量$i被初始化為1。循環(huán)開始時,首先檢查$i的值是否滿足小于或等于10的邏輯條件,如果該條件為真,即$i的值滿足條件,則執(zhí)行循環(huán)體,其中包括輸出$i的值并換行,接著,執(zhí)行迭代表達(dá)式$i++,將$i的值增加1,隨后,再次評估$i的值是否小于或等于10,如果條件仍然為真,循環(huán)將繼續(xù)執(zhí)行,這個過程會一直重復(fù),每次迭代后$i的值都會遞增。3.3.1for循環(huán)結(jié)構(gòu)for($i=1;$i<=10;$i++){echo$i.'<br>';}運(yùn)行結(jié)果如圖所示。3.3.1for循環(huán)結(jié)構(gòu)假設(shè)你正在開發(fā)一個簡單的小學(xué)數(shù)學(xué)輔助系統(tǒng),需要幫助小朋友們實(shí)現(xiàn)1~10的奇偶數(shù)判斷,并輸出判斷結(jié)果。編寫php文件,實(shí)現(xiàn)1~10的奇偶數(shù)判斷并輸出結(jié)果?!景咐龑?shí)踐3-4】實(shí)現(xiàn)1~10的奇偶數(shù)判斷<?phpecho"快速判斷1~10的奇偶數(shù):<br>";for($i=1;$i<=10;$i++){

if($i%2==0)

$result="是偶數(shù)";

else

$result="是奇數(shù)";

echo$i.$result."<br>";}?>【案例實(shí)踐3-4】實(shí)現(xiàn)1~10的奇偶數(shù)判斷啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件,具體如圖所示while循環(huán)結(jié)構(gòu)根據(jù)循環(huán)條件來判斷是否重復(fù)執(zhí)行某一段代碼,其基本語法格式如下。while循環(huán)在每次執(zhí)行循環(huán)體之前先評估其循環(huán)條件。根據(jù)循環(huán)條件的真假判斷是否執(zhí)行循環(huán)體。3.3.2while循環(huán)結(jié)構(gòu)初始化表達(dá)式;while(循環(huán)條件表達(dá)式){

循環(huán)體迭代表達(dá)式}while循環(huán)結(jié)構(gòu)其流程如圖所示。3.3.2while循環(huán)結(jié)構(gòu)3.3.1節(jié)中逐行輸出數(shù)字1~10的程序可以使用while循環(huán)結(jié)構(gòu)實(shí)現(xiàn),示例代碼如下。如果循環(huán)條件始終滿足,即條件永遠(yuǎn)為真,將導(dǎo)致無限循環(huán),也稱為“死循環(huán)”。在此情況下,必須通過某種方式改變循環(huán)條件,否則程序?qū)⒂肋h(yuǎn)循環(huán),消耗資源而無法繼續(xù)執(zhí)行其他程序。如果循環(huán)條件始終不滿足,即條件永遠(yuǎn)為假,整個循環(huán)體一次也不會被執(zhí)行。3.3.2while循環(huán)結(jié)構(gòu)$i=1;while($i<=10){echo$i.'<br>';$i++;}do...while循環(huán)結(jié)構(gòu)和while循環(huán)結(jié)構(gòu)用法類似,其基本語法格式如下。do...while循環(huán)首先執(zhí)行一遍循環(huán)體和迭代表達(dá)式,之后判斷是否滿足循環(huán)條件。根據(jù)循環(huán)條件的真假判斷是否再次執(zhí)行循環(huán)體。3.3.3do…while循環(huán)結(jié)構(gòu)初始化表達(dá)式;do{

循環(huán)體迭代表達(dá)式}while(循環(huán)條件表達(dá)式)do...while循環(huán)結(jié)構(gòu)其流程如圖所示。3.3.3do…while循環(huán)結(jié)構(gòu)3.3.1節(jié)中逐行輸出數(shù)字1~10的程序同樣可以使用do...while循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。3.3.2while循環(huán)結(jié)構(gòu)$i=1;do{echo$i."<br>";$i++;}while($i<=10);while和do...while是兩種重要的循環(huán)結(jié)構(gòu),分別體現(xiàn)了“先商量后行動”與“先斬后奏”的策略差異。while循環(huán)結(jié)構(gòu),雖起初效率略低,但能確保行動在滿足條件的前提下進(jìn)行,更為穩(wěn)妥;而do...while循環(huán)結(jié)構(gòu)效率較高,但存在風(fēng)險,即不滿足條件時,前期準(zhǔn)備工作可能白費(fèi)。分別使用這兩種循環(huán)結(jié)構(gòu)模擬請假流程對比如圖所示。有趣的while和do...while循環(huán)結(jié)構(gòu)在編程中,選擇while還是do…while循環(huán)需基于具體需求和場景,以平衡穩(wěn)妥與效率。這兩種循環(huán)結(jié)構(gòu)不僅關(guān)乎編程技巧,也蘊(yùn)含生活智慧:追求效率的同時,確保滿足前提條件,避免不必要的麻煩。實(shí)踐中應(yīng)靈活運(yùn)用這兩種循環(huán),深入理解其原理及應(yīng)用,提升解決問題的能力和個人素養(yǎng)。有趣的while和do...while循環(huán)結(jié)構(gòu)循環(huán)嵌套是指在一個循環(huán)結(jié)構(gòu)的循環(huán)體中再定義一個循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)都可以進(jìn)行嵌套,并且它們之間可以互相嵌套。較為常見的循環(huán)嵌套是for循環(huán)嵌套。3.3.4循環(huán)嵌套for(初始化表達(dá)式;循環(huán)條件表達(dá)式;迭代表達(dá)式){for(初始化表達(dá)式;循環(huán)條件表達(dá)式;迭代表達(dá)式){

循環(huán)體

}}例如,使用循環(huán)嵌套輸出由*組成的三角形,示例代碼如下。運(yùn)行結(jié)果如圖所示。3.3.4循環(huán)嵌套for($i=1;$i<=5;$i++){ //控制三角形的行數(shù)

for($j=1;$j<=$i;$j++){ //控制每行輸出的*的數(shù)量

echo"*";}echo"<br>";}假設(shè)你正在開發(fā)一個簡單的小學(xué)數(shù)學(xué)輔助系統(tǒng),需要幫助小朋友們實(shí)現(xiàn)九九乘法表的輸出,即顯示公式和計算結(jié)果。編寫php文件,實(shí)現(xiàn)九九乘法表的循環(huán)輸出?!景咐龑?shí)踐3-5】實(shí)現(xiàn)九九乘法表的輸出<body>

<table>

<?php

for($i=1;$i<=9;$i++){

echo'<tr>';//開始新行

for($j=1;$j<=$i;$j++){

echo'<td>'.$j.'×'.$i.'='.($j*$i).'</td>';//輸出每個單元格

}

echo'</tr>';//結(jié)束當(dāng)前行

}

?>

</table></body>【案例實(shí)踐3-5】實(shí)現(xiàn)九九乘法表的輸出啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件。在編程中,循環(huán)能自動化重復(fù)執(zhí)行任務(wù),高效解決問題。人生也如此,充滿循環(huán)。在循環(huán)中,我們要學(xué)會適應(yīng),不斷調(diào)整自我以適應(yīng)環(huán)境和挑戰(zhàn)。循環(huán)教會我們堅(jiān)持,為實(shí)現(xiàn)目標(biāo)需不斷努力。更重要的是,循環(huán)揭示成長真諦:每次經(jīng)歷都塑造我們的個性和價值觀,使我們更成熟、睿智,成為更優(yōu)秀的自己。循環(huán)中的智慧:人生的重復(fù)與成長跳轉(zhuǎn)語句PART04在循環(huán)結(jié)構(gòu)中,當(dāng)循環(huán)條件永遠(yuǎn)為真時,循環(huán)就會一直執(zhí)行下去,形成“死循環(huán)”。此時可以利用跳轉(zhuǎn)語句跳出循環(huán)。PHP中常用的跳轉(zhuǎn)語句break語句continue語句3.4跳轉(zhuǎn)語句break語句一般用于結(jié)束流程控制結(jié)構(gòu),當(dāng)程序執(zhí)行到break語句時,會立即結(jié)束當(dāng)前的循環(huán)。當(dāng)$i值為3時,滿足循環(huán)體中if語句的條件,進(jìn)入子語句塊,執(zhí)行break語句。此時程序?qū)⒘⒓刺鰓hile循環(huán),執(zhí)行之后的代碼。3.4.1break語句$i=1;while($i<=10){if($i==3){break;}echo$i.'<br>';$i++;}continue語句與break語句的適用范圍相同,當(dāng)程序執(zhí)行到continue語句時,會立即結(jié)束本次循環(huán),跳過剩余的代碼,在滿足循環(huán)條件時執(zhí)行下一次循環(huán)。示例代碼如下。當(dāng)$i通過迭代值為8時,進(jìn)入if分支結(jié)構(gòu),執(zhí)行continue語句,跳出本次循環(huán)。此時程序?qū)⒗^續(xù)判斷$i的值是否滿足循環(huán)條件,滿足時進(jìn)行下一次循環(huán),直至循環(huán)結(jié)束。3.4.2continue語句$i=0;while($i<=10){$i++;if($i==8){continue;}echo$i.'<br>';}異常處理PART05異常處理(又稱為錯誤處理)為我們提供了一種機(jī)制,可以在程序出現(xiàn)錯誤時,進(jìn)行及時、有效的應(yīng)對。異常處理不僅能幫助我們避免程序因?yàn)槲粗e誤而返工,還能提高編程效率。當(dāng)異常發(fā)生時,程序會保存當(dāng)前的狀態(tài),并跳轉(zhuǎn)到我們預(yù)先定義的異常處理器函數(shù)。根據(jù)具體情況,處理器可能會選擇恢復(fù)保存的代碼狀態(tài),或者終止腳本執(zhí)行,甚至從代碼的另一個位置繼續(xù)執(zhí)行腳本。3.5異常處理常見的錯誤分為4類,分別是語法錯誤、運(yùn)行錯誤、邏輯錯誤和環(huán)境錯誤。3.5.1錯誤類型和級別運(yùn)行錯誤運(yùn)行錯誤指程序運(yùn)行時出現(xiàn)的錯誤。語法錯誤語法錯誤是因程序中的代碼不符合語法規(guī)則而發(fā)生的錯誤,語法錯誤會阻止PHP腳本的運(yùn)行。語法錯誤是常見的錯誤,PHP會針對語法錯誤進(jìn)行報錯,錯誤信息為Parseerror。環(huán)境錯誤環(huán)境錯誤是由PHP開發(fā)環(huán)境引起的錯誤,程序出現(xiàn)環(huán)境錯誤時,會出現(xiàn)明顯的錯誤提示。邏輯錯誤邏輯錯誤指編寫程序時的實(shí)現(xiàn)思路出現(xiàn)錯誤,它不會阻止運(yùn)行PHP腳本,也不會顯示具體的錯誤信息,所以很難被發(fā)現(xiàn)。PHP中的每種錯誤類型都對應(yīng)不同的錯誤級別,這些級別通常用常量來表示。常見的錯誤級別如下表所示。3.5.1錯誤類型和級別在PHP中,異常處理主要通過try、catch、throw、finally等塊或關(guān)鍵字來實(shí)現(xiàn)。一個try塊至少要有一個與之對應(yīng)的catch塊。定義多個catch塊可以捕獲不同的對象,PHP會按這些catch塊被定義的順序運(yùn)行,直到運(yùn)行完最后一個為止,而在這些catch塊內(nèi),又可以拋出新的異常。3.5.2異常處理方式catch塊用于捕獲并處理異常,它接收一個異常對象作為參數(shù),可以指定捕獲特定類型的異常,也可以不指定,捕獲任何類型的異常。try塊將可能拋出異常的代碼放在try塊中,如果在這個塊中的代碼拋出了異常,則立即停止運(yùn)行該塊的剩余代碼,并搜索匹配的catch塊。finally塊無論是否發(fā)生異常,finally塊中的代碼都會運(yùn)行,它通常用于運(yùn)行清理工作,如關(guān)閉文件句柄或數(shù)據(jù)庫連接。throw關(guān)鍵字用于手動拋出一個異常,可以拋出一個新的異常對象,或者使用Exception類的一個實(shí)例。文件包含語句PART06在程序開發(fā)中,通常會將頁面的公共代碼提取出來,放到單獨(dú)的文件中,然后使用PHP提供的文件包含語句,將公共的文件包含進(jìn)來,從而實(shí)現(xiàn)代碼的復(fù)用。文件包含語句包括:include語句require語句include_once語句require_once語句3.6文件包含語句include語句用于在當(dāng)前腳本中包含另一個文件的內(nèi)容。如果包含的文件存在并且可以成功加載,include語句返回true;如果文件不存在或無法加載,則會發(fā)出一個警告,并返回false,這個警告不會阻止腳本的繼續(xù)執(zhí)行。include語句的語法格式如下。其中,完整路徑文件名可以是被包含文件的絕對路徑,也可以是被包含文件的相對路徑。3.6.1include語句和require語句include'完整路徑文件名';或include('完整路徑文件名');具體應(yīng)用如下,在test.php中編寫如下代碼,輸出語句HelloPHP!。在同目錄下的另一PHP文件test_2.php中,使用include語句引入test.php,示例代碼如下。運(yùn)行結(jié)果如圖所示。3.6.1include語句和require語句<?phpecho'HelloPHP!';?><?phpinclude'./test.php';?>require語句也用于在當(dāng)前腳本中包含另一個文件的內(nèi)容。與include語句不同,如果文件不存在或無法加載,require語句會產(chǎn)生一個嚴(yán)重錯誤(E_COMPILE_ERROR),并且腳本會停止執(zhí)行。require語句的語法格式如下。將test_2.php文件中的代碼修改如下。程序?qū)⒁虍a(chǎn)生嚴(yán)重錯誤而終止執(zhí)行。3.6.1include語句和require語句require'完整路徑文件名';<?phprequire'./test_3.php';//包含不存在的文件?>include_once語句用于確保一個文件只被包含一次,即使在多次調(diào)用的情況下也是如此。include_once語句的語法格式如下。如果包含的文件不存在,將產(chǎn)生一個E_WARNING級別的錯誤,但腳本會繼續(xù)執(zhí)行。require_once語句也用于包含一個文件,并且也只包含一次。require_once語句的語法格式如下。與include_once不同的是,如果文件不存在或無法包含,require_once會產(chǎn)生一個嚴(yán)重錯誤(E_ERROR),并導(dǎo)致腳本停止執(zhí)行。3.6.2include_once語句和require_once語句include_once'完整路徑文件名';require_once'完整路徑文件名';下面來看一個示例。file1.php具體代碼如下。file2.php具體代碼如下所示。3.6.2include_once語句和require_once語句<?phpecho"這是文件1的內(nèi)容。<br>";//包含一個文件include'file2.php';echo"這是文件1的后續(xù)內(nèi)容。<br>";?><?php$count=1;echo"這是第$count次包含file2.php。<br>";//增加計數(shù)器的值$count++;?>test.php文件中使用include語句和include_once語句來包含file1.php。運(yùn)行結(jié)果如圖所示。3.6.2include_once語句和require_once語句<?phpinclude'file1.php';//使用include語句包含file1.phpinclude_once'file1.php';//使用include_once語句再次包含file1.php//輸出一個測試字符串echo"包含操作已完成。";?>為構(gòu)建匯率計算器,我們需要實(shí)現(xiàn)以下核心功能:首先,編程實(shí)現(xiàn)根據(jù)指定的匯率將一種貨幣兌換成另一種貨幣的功能,即已知匯率和某貨幣的金額,將該貨幣的金額換算成另一種貨幣的金額,并顯示換算結(jié)果。其次,編程實(shí)現(xiàn)根據(jù)指定的匯率將一種貨幣兌換成其他多種貨幣的功能,即已知匯率和某貨幣的金額,將該貨幣的金額換算成其他多種貨幣的金額,并顯示換算結(jié)果。任務(wù)3-1構(gòu)建一對一匯率計算設(shè)計前端界面,顯示當(dāng)前匯率和貨幣金額;根據(jù)需要,選擇不同的匯率進(jìn)行計算;將計算結(jié)果顯示到頁面上。編寫php文件實(shí)現(xiàn)一對一匯率的計算。//用戶輸入的貨幣金額$amount=50;//用戶選擇的貨幣代碼$currencyCode='USD';//假設(shè)用戶想將貨幣換成美元//計算兌換后的金額switch($currencyCode){

case

'USD':

$calculatedAmount=$amount*$USD;

echo"當(dāng)前{$currencyCode}的匯率是{$USD}。<br>";

break;case

'JPY':

$calculatedAmount=$amount*$JPY;

echo"當(dāng)前{$currencyCode}的匯率是{$JPY}。<br>";

break;任務(wù)3-1構(gòu)建一對一匯率計算

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論