Download presentation
Presentation is loading. Please wait.
Published byMeghan Lee Modified 5年之前
1
條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
PHP 條件判斷與迴圈指令 條件判斷指令 -if 指令 -switch 指令 迴圈指令 - for 迴圈 - while迴圈 - break、continue 指令
2
PHP 條件判斷指令 程式中依據不同需求而執行不同的程式碼. if 指令格式 if … if … else … if … elseif …
3
if 指令格式-Type 1 if … if (條件判斷式) { 判斷式為真時要執行的指令 ; 也可以是多行指令 ; } 例:
$a = 10 ; $b = 5 ; if ($a > $b ) { echo “變數a 大於 變數b “; } echo "程式結束" ;
4
if 指令格式-Type 2 在條件為真時要做某種處理, 若為假時也要做 某些處理時使用。 格式: if … else … 精簡格式
判斷敘述 ? 為真敘述 : 為假敘述
5
if 指令格式-Type 2 if … else … 範例 正規格式 精簡格式
if (preg_match("/MSIE/",$_SERVER["HTTP_USER_AGENT"])){ echo "你的瀏覽器是 IE" ; }else{ echo "你的瀏覽器不是 IE" ; } 精簡格式 $a>$b ? $c="true" : $d="false" ;
6
if 指令格式-Type 3 if … elseif …
結合了 else 及 if, 如果 if 的條件判斷式為假時在 else 的位置可以再做一次條件判斷。
7
if 指令格式-Type 3 if … elseif … 格式: if (判斷式A) { 處理A ; 判斷式A為真時要執行的指令 ; 可以是多行指令 ; } elseif (判斷式B) { 處理B ; 判斷式B為真時要執行的指令 ; 可以是多行指令 ; } else { 處理C ; 判斷式B為假時要執行的指令 ; 可以是多行指令 ; }
8
if 指令格式-Type 3 if … elseif … 範例: if ($bmi<18.5) $level="體重過輕";
elseif ($bmi<24) $level="正常範圍"; elseif ($bmi<27) $level="過 重"; else $level="肥 胖"; //… echo "BMI等級: $level<br/>";
9
switch 指令 在程式中如果只利用一個變數做為多個判斷條件的 依據。例如當變數值為 1、2 或 3 時做不同的處理。
switch 指令可以取代巢狀 if, 使寫法更加簡捷。 switch (判斷變數) { case 條件1: 敘述 ; break; case 條件2: 敘述 ; break ; default: 敘述 ; }
10
switch指令 break 指令的功能是跳離 switch 指令。當判斷變數符合某一個 case, 進入該 case 敘述執行後就應該要離開 switch 不可以再進 入其他 case 區域中, 此時利用 break 指令跳離 switch 指令。 switch 範例 switch ($a) { case 1 : echo "a=1" ; break; case 2 : echo "a=2" ; break ; case 3: echo "a=3" ; default : echo "a不是介於1到3之間" ; }
11
迴圈指令 for 迴圈 基本for迴圈 巢狀for迴圈 foreach迴圈 while迴圈 break, continue 指令
12
基本for 迴圈 使用迴圈指令來解決重複計算的問題。 已知迴圈的起始值及終止值, 或已知需要的迴圈 次數時, 我們會使用 for 指令。
{ 迴圈敘述 }
13
基本for 迴圈 特殊的for 迴圈 基本for 迴圈範例 for ($i = 0 ; $i<=6 ; $i++){
echo "<td width=80>$Week[$i]</td> " ; } 特殊的for 迴圈 for ($i=0; $i<=10 ; $i--) for ( ; ; ) for ($i=0 ; $i<=10; $j++) 以上所有的for指令假設在迴圈敘述內不會改變 $i 的值, 那麼三個 for 迴圈都是無窮迴圈。
14
巢狀for迴圈 for 迴圈內還可以有 for迴圈
格式 for ($i=0; $i<=10; $i++){ echo $i; for ($j=1; $j<=9; $j++) echo $j; }
15
巢狀for 迴圈 Nested for loop <?php $s = array (0,15,10,20,17,3,8) ;
echo "<h3>銷售量統計表</h3>" ; for ($i=1 ; $i<=6; $i++){ echo "星期 $i : " ; $s[0]+=$s[$i] ; for ($j=1 ; $j<= $s[$i]; $j++) echo "*" ; echo " $s[$i]<br/>" ; } echo "總量 : $s[0]<br/>" ; ?>
16
foreach迴圈 foreach, 專門使用在陣列操作, 有二種格式 分如下:
foreach (array_expression as $value) foreach (array_expression as $key => $value) 與後面的陣列設定值有關 兩者的差別在「index 值是否需要」。
17
foreach迴圈 foreach格式-Type 1 foreach (陣列名稱 as $value){ 迴圈敘述 ; }
範例: $month = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug', 'Sep','Oct','Nov','Dec') ; foreach ($month as $value) echo "$value <br/> " ;
18
foreach迴圈 foreach 格式-Type 2
foreach (陣列名稱 as $key => $value) { 迴圈敘述 ; } 除了會將陣列元素依序存入 $value 外, 也會將 陣列指標 index 同時存入 $key 中。
19
foreach迴圈 foreach 格式-Type 2 範例 <?php $arrMath = array(
"s " => 95, "s " => 85, "s " => 93, "s " => 98, "s " => 87); echo "<ul>"; foreach ($arrMath as $id => $score) echo "<li>學號: $id, 成績: $score</li>"; echo "</ul>"; ?>
20
while迴圈 while 指令有二個格式 差別在「先測後執行」還是「先執行後測」 故 do ... While 一定會至少「執行一次」
21
while迴圈 while 指令格式-Type1 while (判斷式) { 迴圈敘述 } 範例: $sum = 0; $i = 0; }
…+ 14 = 105 $sum = 0; $i = 0; while ($sum<=100) { $i++; $sum += $i; } echo " …+ $i = $sum";
22
while迴圈 while 指令格式-Type2 do { 迴圈敘述 } while (判斷式) ; 範例: $sum = 0;
…+ 14 = 105 $sum = 0; $i = 0; do { $i++; $sum += $i; } while ($sum<=100); echo " …+ $i = $sum";
23
break 指令 break指令會強迫跳離 for、while 迴圈及 switch 指令。 格式如下 break; 或 break n ;
24
break 指令 break 指令範例 單層(n=1) <?php $sum = 0; $i = 0; for (;;) {
if ($sum >= 100) break; } echo " …+ $i = $sum"; ?> …+ 14 = 105
25
break 指令範例 多層(n=2) 1: <html> 2: <title>Break</title>
3: <body> 4: <?php 5: echo "======= break ======= <br>\n" ; 6: for ($a=1; $a<=3; $a++) { //第一層迴圈 7: for ($b=1; $b<=10 ; $b++) { //第二層迴圈 8: echo "A = $a B=$b <br>\n" ; 9: if ($b==3) break ; 10: } 11: echo " <br>" ; 12: } 13: echo "<p>"; 14: echo "====== break 2 ====== <br>\n" ; 15: for ($a=1; $a<=3; $a++) { //第一層迴圈 16: for ($b=1; $b<=10 ; $b++) { //第二層迴圈 17: echo "A = $a B=$b <br>\n" ; 18: if ($b==3) break 2 ; 19: } 20: } 21: ?> 22: </body> 23: </html>
26
continue 指令 continue 指令會忽略 continue 以下的迴圈敘述回到迴 圈起始位置繼續執行迴圈。 格式
continue n ; continue 指令會忽略所在位置以下的迴圈敘述回到迴 圈起始位置繼續執行迴圈。 n 代表跳離的層數, 當 n 忽略不寫時表示 n=1
27
continue指令 continue 指令範例 <html>
<title>Continue</title> <body> <?php $num=0 ; while ($num < 9) { $num++; echo "<br/>$num "; if (($num % 2) ==0) continue; echo "<== 是奇數"; } ?> </body> </html>
Similar presentations