php多分支结构 案例,第4天 PHP分支、循环结构
6. 流程控制
流程控制,就是研究程序的走向。
6.1. 流程控制概述
6.1.1. 三大流程結(jié)構(gòu):
順序結(jié)構(gòu):
程序運行的自然狀態(tài),就是從前往后(從上到下)運行程序。
分支結(jié)構(gòu):
程序運行過程中,根據(jù)判斷條件的不同結(jié)果(true或false),執(zhí)行不同的分支(其他分支不再執(zhí)行)。
循環(huán)結(jié)構(gòu):
程序運行過程中,根據(jù)判斷條件的不同結(jié)果(true或false),決定是再次執(zhí)行還是不再執(zhí)行。
6.1.2. 流程圖常用圖形符號:
6.2. if語句
有如下幾種常見的if語句(不同的分支數(shù)量):
6.2.1. 形式1:單分支
形式:
if ( 條件判斷 ){
//如果條件滿足,就執(zhí)行這里
}
流程圖:
image.png
6.2.2. 形式2:雙分支
形式:
if ( 條件判斷 ){
//如果條件滿足,就執(zhí)行這里
}
else{
//如果條件不滿足,就執(zhí)行這里
}
流程圖:
image.png
image.png
6.2.3. 形式3:多分枝
形式:
if ( 條件判斷1 ){
//分支1;
}
elseif( 條件判斷2 ){
//分支2;
}
elseif( 條件判斷3 ){
//分支3;
}
。。。。。。。前面的elseif分支,可以若干個(0個以上)
else{
//最后的else分支,可以沒有!
}
流程圖:
image.png
image.png
綜合案例:
在一個form表單中輸入一個分數(shù)(0-100之間),程序可以給該分數(shù)進行“評語”,評語包括:
優(yōu)秀,良好,中等,及格,不及格。
6.3. 分支結(jié)構(gòu)之switch分支語句(重點)
語法:
switch( 一個變量數(shù)據(jù)或表達式結(jié)果$v1 ){
case 值1: //如果$v1 等于 這個“值1”,就執(zhí)行本分支
分支語句1;
break; //表示跳出該分支,也就是跳出switch語句。
case 值2: //如果$v1 等于 這個“值2”,就執(zhí)行本分支
分支語句2;
break;
。。。。。。 //可以更多的分支
default:
默認分支; //前面都不滿足的時候,就執(zhí)行這里
}
說明:
1,上述“值1,值2,。。。”可以是各種標量類型,也可以是表達式——因為最終它也是一個值。
2,用于進行測試的數(shù)據(jù)變量$v1跟后續(xù)的各個值,只能進行“相等比較”(==)。
3,從上述第2條角度來說,其實際上不如if靈活。
注意:
當某個分支滿足條件并執(zhí)行該分支后,如果該分支中沒有break語句,此時,程序的流程會“直接進入”后一個分支繼續(xù)執(zhí)行,直到碰到break才會結(jié)束switch。
流程圖:
image.png
示例:
image.png
無break終止時:
image.png
案例1:
使用switch實現(xiàn)
把成績進行分檔:60分以下:不及格;60-69:及格; 70-79:中等;80-89:良好;90-99:優(yōu)秀;100:滿分
案例2:
輸入任意的年份和月份,輸出該月的天數(shù),例如:輸入year:2019 month:7,輸出該月的天數(shù)是31天
思路:天數(shù)是根據(jù)月份來決定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:
2月,如果是閏年是29天,非閏年則為28天。
/*
輸入任意的年份和月份,輸出該月的天數(shù),例如:輸入year:2019 month:7,輸出該月的天數(shù)是31天
思路:天數(shù)是根據(jù)月份來決定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:
2月,如果是閏年是29天,非閏年則為28天。
*/
$year=2000;
$month=2;
switch ($month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
echo "31天";
break;
case 4:
case 6:
case 9:
case 11:
echo "30天";
break;
case 2:
if($year%4==0&&$year%100!=0 || $year%400==0){
echo "29天";
}else{
echo "28天";
}
break;
default:
echo "非法的月份";
break;
}
6.4. 循環(huán)結(jié)構(gòu)之while循環(huán)語句
循環(huán)的含義:就是通過某種語法結(jié)構(gòu),對某段代碼可以“反復(fù)執(zhí)行”。
while循環(huán)語法:
**初始化數(shù)據(jù)**
while(條件判斷){
。。。。循環(huán)體語句;
循環(huán)控制;
}
說明:
循環(huán)一開始就進行條件判斷:
如果成立:則執(zhí)行循環(huán)體,而后會自動回到循環(huán)開始位置繼續(xù)進行條件判斷,如此反復(fù);
如果不成立:則退出循環(huán),執(zhí)行后續(xù)語句。
流程圖:
image.png
案例1:
1)輸出1-10;
image.png
2)求1-10的和;
image.png
案例2:
求7到17的和。
image.png
案例3:
1、輸出1-100之間既能被3整除,也能被6整除的數(shù)
image.png
2、一張紙的厚度是2mm,問:折疊多少次后能夠達到珠峰的高度(8848米)
image.png
6.5. 循環(huán)結(jié)構(gòu)之do while循環(huán)語句
**do while循環(huán)語法:**
** 初始化數(shù)據(jù)**
do {
。。。。循環(huán)體語句;
循環(huán)控制;
}while(條件判斷);
說明:
先執(zhí)行一次循環(huán)體,然后進行條件判斷:
如果成立:則繼續(xù)回去執(zhí)行循環(huán)體,而后再次進行條件判斷,如此反復(fù);
如果不成立:則退出循環(huán),執(zhí)行后續(xù)語句。
流程圖:
image.png
image.png
案例:
求7到177之間能被7整除的數(shù)的和。
image.png
6.6. 循環(huán)結(jié)構(gòu)之for循環(huán)語句(重點/難點)
for循環(huán)語法:
for(循環(huán)變量初始化1; 循環(huán)條件判斷2; 循環(huán)變量的改變3){
。。。。。。。。循環(huán)體語句塊4;
//這里可以有多條語句
//是可以反復(fù)執(zhí)行的部分
}
說明:
1,執(zhí)行流程如下圖所示
image.png
2,此語句結(jié)構(gòu)是將循環(huán)的3個要素都集中在一起寫的形式,比較緊湊,容易控制,最常用。
3,循環(huán)變量初始化語句1只執(zhí)行一次,所以真正的正常循環(huán),是在“2->4->3”之間進行。
典型流程圖:
image.png
案例1:
求1-100之間能被7整除的數(shù)的和。
image.png
案例****2:
輸出1-100之間能被3整除但不能被5整除的偶數(shù)。
image.png
案例3:
輸出1-100之間的數(shù),并且要求:
能被3整除的使用“三”代替,能被5整除的使用“五”代替,能同時被兩者整除的用“三五”代替。
image.png
6.7. 循環(huán)的中斷
循環(huán)是按給定的條件,只要條件滿足就會繼續(xù)執(zhí)行循環(huán)體的一種語法形式。
但,我們也可以在循環(huán)過程中(循環(huán)體內(nèi)),人為將循環(huán)中斷。
有兩種中斷循環(huán)的方式:
continue中斷:
含義:中斷當前正在進行的循環(huán)體(即后續(xù)語句不再執(zhí)行),繼續(xù)下一次循環(huán)要執(zhí)行的語句。
語法形式:
continue [$n]; //表示是要中斷第幾層的循環(huán),繼續(xù)該層循環(huán)的下一次。
//其中$n可以省略,如果省略,表示1,就是中斷當前層的循環(huán)。
break中斷:
含義:停止(跳出)當前正在進行的循環(huán)(即完全終止循環(huán)),去執(zhí)行該循環(huán)之后的語句。
語法形式:
break [$n]; //表示是要中斷幾層循環(huán)。
//其中$n可以省略,如果省略,表示1,就是中斷當前循環(huán)
他們都適用于3種循環(huán)。
案例演示:
1、輸出1-10的數(shù),除了5不輸出,其他都輸出出來。
image.png
image.png
2、從1-10(含1和10)進行循環(huán)并輸出該數(shù)字,并要求能被3整除就不輸出,能被9整除就終止循環(huán)。
最后再輸出循環(huán)變量的值。
image.png
while和for的區(qū)別:
1、能用for解決的,while基本能解決;
2、for一般用于知道循環(huán)次數(shù)的場景,while循環(huán)一般用于不知道循環(huán)次數(shù)的場景
6.8. 多重循環(huán)及案例
概念:
多重循環(huán)就是循環(huán)里面由出現(xiàn)循環(huán)的代碼。
其基本執(zhí)行流程,其實仍然是循環(huán)的基本邏輯,只是循環(huán)的時候要注意:外層循環(huán)執(zhí)行每一次,里層循環(huán)就會完整執(zhí)行循環(huán)的“所有次”(一個完整循環(huán)的過程)。
案例****1:
image.png
輸出如下形式的數(shù)字到頁面上:
1 2 3 4 5 6 7 8
2 2 3 4 5 6 7 8
3 2 3 4 5 6 7 8
4 2 3 4 5 6 7 8
image.png
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
image.png
image.png
案例****2:
輸出如下表格:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
方法一:
image.png
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
image.png
案例3:
實現(xiàn)如下所示99乘法口訣表。
image.png
image.png
案例4:
有紅、白、黑三種球若干個,其中紅、白球共25個,白、黑球共31個,紅、黑球共28個,求這三種球各多少個?
課間案例:
公雞5元一只,母雞3元一只,小雞1元3只,100元買了100只雞,問各多少?
image.png
總結(jié)
以上是生活随笔為你收集整理的php多分支结构 案例,第4天 PHP分支、循环结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 设置session目录,php设
- 下一篇: php设置东京时区,php设置时区方法介