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