Board logo

標題: 3-1-2 if-else敘述 [打印本頁]

作者: 小誌    時間: 2011-4-18 17:55     標題: 3-1-2 if-else敘述

3-1-2   if-else敘述
if-else敘述的意思是說:「如果…就做…否則就….。」,也就是當比較式成立時做某事,比較式不成立時就做另外一件事。
執行單行敘述的if-else格式如下:
if-else判斷敘述格式
  1. if  (條件式)
  2.      程式敘述;
  3. else
  4.      程式敘述;
複製代碼
例如分數大於等於60分則顯示「及格」,反之則顯示「不及格」:
  1. <?
  2. if ($_POST["score"]>=60)
  3.   echo "您的分數". $_POST["score"] ."分,及格";
  4. else
  5.   echo "您的分數". $_POST["score"] ."分,不及格";
  6. ?>
複製代碼
注意
在if(條件式)與else保留字之後不可以有『;』分號,分號是在if(條件式)與else保留字後的單行敘述結尾才能使用的。
作者: 小誌    時間: 2011-4-18 17:56

if-else敘述除了上述說明的正規用法外,也可以使用『條件運算元』的方式來做:
條件運算元判斷敘述格式
  1. (條件式)? 程式敘述A : 程式敘述B;
複製代碼
它的意義是:如果『條件式』成立(評估值為True),就執行「?」之後的『程式敘述A』,不然的話就跳過『程式敘述A』,執行「:」之後的『程式敘述B』。
例如
  1. <?
  2. $score=60;
  3. ($score>=60)? $ans="及格" : $ans="不及格";
  4. echo $ans;
  5. ?>
複製代碼
等同
  1. <?
  2. $score=60;
  3. $ans=($score>=60)? "及格" : "不及格";
  4. echo $ans;
  5. ?>
複製代碼
上例若改為if-else敘述則為:
  1. <?
  2. $score=60;
  3. if($score>=60)
  4. $ans="及格";
  5. else
  6. $ans="不及格";
  7. echo $ans;
  8. ?>
複製代碼

作者: 小誌    時間: 2011-4-18 17:57

如果在條件式後面(條件式成立時)要撰寫多個敘述,同時,在Else後面(條件式不成立時)也要撰寫多個敘述時,我們可以使用結構化的寫法,就是使用「{ }」把這些敘述(敘述區塊)包括在其中,執行敘述區塊的if-else格式如下:
if-else判斷敘述格式
  1. if  (條件式)
  2. {
  3.      敘述區塊(條件式成立時);
  4. }
  5. else
  6. {
  7.      敘述區塊(條件式不成立時);
  8. }
複製代碼
[attach]5467[/attach]
圖3-3   If-Then-Else敘述流程圖。
作者: 小誌    時間: 2011-4-18 17:58

實例說明:(範例光碟ex03_03.php)
我們的網站在下午六點鐘到午夜12點鐘不開放,如果瀏覽者在這段時間進入網站,則在網頁中顯示「明日請早!」,瀏覽者在這段時間之外進入網站,則在網頁中顯示「歡迎光臨!」。
  1. <?
  2. if(date("H")>=18)
  3. {
  4. echo ("明天請早!<br>");
  5. echo date("G 時 i 分 s 秒 A");
  6. }
  7. else
  8. {
  9. echo ("歡迎光臨!<br>");
  10. echo date("G 時 i 分 s 秒 A");
  11. }
  12. ?>
複製代碼
注意
在{或}後不可以有『;』分號,但是敘述區塊中({…})的每一個敘述都要加上『;』分號。
作者: 小誌    時間: 2011-4-18 17:59

同樣的,if-else多敘述(敘述區塊)判斷式亦可不用「{ }」來包括敘述,改用「endif;」來做,格式如下:
if-else判斷敘述格式
  1. if  (條件式):
  2.      敘述區塊(條件式成立時);
  3. else:
  4.      敘述區塊(條件式不成立時);
  5. endif;
複製代碼
例如:(範例光碟ex03_03a.php)
  1. <?
  2. if(date("H")>=18):
  3. echo ("明天請早!<br>");
  4. echo date("G 時 i 分 s 秒 A");
  5. else:
  6. echo ("歡迎光臨!<br>");
  7. echo date("G 時 i 分 s 秒 A");
  8. endif;
  9. ?>
  10.       
複製代碼
注意
在if(條件式)、else與endif;的作法中,在if(條件式)與else之後必須加上「:」冒號代表敘述區段的起始,而敘述區塊中的每個單行敘述結尾同樣必須加上「;」。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)