PHP流程控制的分支結構
流程的分類
Ø 順序結構(默認,沒有那個語言是從下往上執行的)
Ø 分支結構(選擇結構)
Ø 循環結構
分支結構
程序在執行過程中,往往要根據不同的運行結果做出不同的選擇,或者書忽略部分代碼的執行,這種執行結果就是分支結構
單項分支結構
Ø 格式:
if(條件表達)
一條PHP代碼
u 如果條件表達爲真,將會執行if之後的一條PHP代碼
u 如果條件表達爲假,那麼將不會執行if之後的第一條PHP代碼
注意:該格式的分支結構僅能控制if之後的第一條PHP語句
Ø 單項分支結構二格式:
if(條件表達式){
}
該格式的分支結構,可以控制if之後的一個完整的代碼塊{}區域的所有內容
雙項分支結構
Ø 格式1:
if()
執行一條PHP語句
else
執行一條PHP語句
Ø 格式2:
if(條件表達){
執行多條PHP語句
}else{
執行多條PHP語句
}
多項分支結構
Ø 格式1:if..else分支擴展
if(條件表達式){
PHP代碼
}elseif(條件表達式){
PHP代碼
}elseif(條件表達式){
PHP代碼
}else{
PHP代碼}
Ø 格式2:
switch..case格式
switch(){
case 值:
PHP語句
break;
case 值:
PHP語句
break;
...
befault:
PHP語句
}
注意:
1.switch..case 的分支選擇和if...elseif...else的分支選擇並不相同。
2.switch...case 的分支結構可以同時執行多條分支(分支中沒有break語
句出現,那麼將從當前case開支一致執行到最後)
3.如果使用switch..case實現多項分支的單項選擇,可以爲每一個分支添
加break語句。
4.switch..case的取值需要從字符串和整型以及布爾值中選取,不推薦
使用浮點型,不可以使用符合數據類型和特殊數據類型
5.switch..case只用於精確值的判斷,不能用於範圍值的判斷
注意:書寫代碼一定注意鎖緊的格式,增加代碼的可讀性
巢狀分支結構
巢狀分支就是在雙向分支或者多項分支的正區間或者假區間再次使用分支結構,這類結構統稱爲巢狀分支結構(也就是循環的嵌套)
PHP流程控制之循環結構
結構的分類
Ø while 循環
Ø do...while循環
Ø for 循環
Ø foreach 循環數組
Ø mt_rand()獲取一個隨機數
@param1第一個開始的數值
@param2第二個結束的數值
返回值:返回從開始的數值到結束的數值之間任意一個數值。
while 型循環
Ø 格式:
while(條件表達式){
PHP代碼;
[自增自減的條件]
}
注意:書寫循環結構時一般都需要自增自減條件
do..while循環結構
Ø 格式:
do{
PHP代碼
[自增自減條件]
}while(條件表達式);
Ø do...while 和while的區別:
while型循環的每一次循環體的執行都要依據while條件表達式的結果進行約束
do...while除了第一次之外,剩下每次的循環體的執行都要受while條件表達式結果進行約束
for 循環結構
for循環是由while循環演變過來的
Ø for格式:
for(表達式1;表達式2;表達式3){
PHP語句(循環體)
}
表達式1:表示初始化比變量
表達式2:表示循環退出的條件(條件表達式)
表達式3:自增或者自減條件
Ø for循環和while循環的去區別:
u 效率問題:
for循環要高於while循環,for循環屬於計數型循環,而while循環屬於bool型循環(條件循環)
u 類型問題:
技術型循環只有for循環
布爾值循環:while循環do...while循環和foreach循環
Ø for循環的執行格式:
u 執行表達式1,對變量進行初始化賦值(僅執行一次)
u 執行表達2,判斷是否符合循環的條件
u 如果表達式2符合執行循環的條件,那麼久執行{}內的代碼(循環體)
u 執行表達3自增或者自減條件
u 表達式2判斷是否符合繼續循環的條件3,4,5
流程控制的其他語句
Ø break
u 作用1:可以在switch中使用break來終止分支結構的執行
u 作用2:可以在任何的循環結構中使用break來終止循環操作
u 注意:break後面可以加參數,如果直接寫break 1(默認1表示終止一層循環)相當於一個break 2(表示終止2層循環)表達式終止兩層循環。(循環結果原本是0到10在5處使用break只能0到5)
Ø continue
u 在循環結構中用來終止本次循環開始下一次循環。(把本次循環跳過去不影響下一循環)
u 注意:continue 後面可以加參數,如果直接寫continue 1(表示一個continue 1)如果continue 2表示跳到外層繼續循環(循環結果原本是0到10 在5處使用continue則顯示0到10但沒有5)