Board logo

標題: 3-1-1 If 敘述 [打印本頁]

作者: 小誌    時間: 2011-4-18 17:48     標題: 3-1-1 If 敘述

3-1-1    If 敘述
If是我們最常使用的判斷敘述,它的通用格式是:
if判斷敘述格式
  1. if  (條件式)  
  2. 單行敘述;
複製代碼
它的意義是:如果『條件式』成立(評估值為True),就執行『條件式』之後的『單行敘述』,不然的話就跳過『條件式』之後的『單行敘述』,繼續執行下面的程式敘述。

實例說明:(範例光碟ex03_01.php)
我們的網站在下午六點鐘到午夜12點鐘不開放,如果瀏覽者在這段時間進入網站,則在網頁中顯示「明日請早!」。
  1. <?
  2. if (date(“H”)>18)
  3. echo ("明天請早!");
  4. ?>
複製代碼
如果在『條件式』成立(評估值為True)後要撰寫多個敘述時(條件成立後要做很多事),我們可以使用結構化的寫法,就是使用「{ }」把這些敘述(敘述區塊)包括在其中,其格式如下:
if判斷敘述區塊格式
  1. if (條件式)  
  2. {
  3.    程式敘述區塊;
  4. }
複製代碼
它的意義是:如果『條件式』成立(評估值為True),就執行「{」之後的『程式敘述區塊』,不然的話就跳過「{」之後的『程式敘述區塊』,從「}」之後繼續執行下面的程式敘述。
介於「{ }」之間的所有敘述我們就稱它為『敘述區塊』,而在撰寫敘述區塊的時候,請將敘述區塊退後幾格,這樣將使程式更容易閱讀。

[attach]5465[/attach]
圖3-1   if 敘述流程圖。
作者: 小誌    時間: 2011-4-18 17:50

實例說明:(範例光碟ex03_02.php)
我們的網站在下午六點鐘到午夜12點鐘不開放,如果瀏覽者在這段時間進入網站,則在網頁中顯示「明日請早!」與瀏覽者的進入時間。
  1. <?
  2. if(date("H")>=18)
  3. {
  4. echo ("明天請早!<br>");
  5. echo date("G 時 i 分 s 秒 A");
  6. }
  7. ?>
複製代碼
如果在『條件式』成立(評估值為True)後要撰寫多個敘述時(條件成立後要做很多事),除了可以使用「{ }」把這些敘述(敘述區塊)包括在其中外,亦可放棄使用「{ }」來包括敘述,改用「endif;」來做,格式如下:
if判斷敘述區塊格式
  1. if (條件式) :

  2.    程式敘述區塊;

  3. endif;
複製代碼
它的意義是:如果『條件式』成立(評估值為True),就執行「:」之後的『程式敘述區塊』,不然的話就跳過「:」之後的『程式敘述區塊』,從「endif;」之後繼續執行下面的程式敘述。
例如:(範例光碟ex03_02a.php)
  1. <?
  2. if(date("H")>=18):
  3. echo ("明天請早!<br>");
  4. echo date("G 時 i 分 s 秒 A");
  5. endif;
  6. ?>
複製代碼
注意
在if(條件式)與endif;的作法中,在if(條件式)之後必須加上「:」冒號代表敘述區段的起始,而敘述區塊中的每個單行敘述結尾同樣必須加上「;」。
作者: 小誌    時間: 2011-4-18 17:53

實做練習1
在程式網頁中設計一個表單,讓使用者輸入成績資料,並撰寫一程式接收來自表單的資料,若分數大於等於60分則在網頁中顯示「分數」與『及格』,表單設計如下圖所示。
[attach]5466[/attach]
圖3-2   實做練習test03_01.php表單輸入網頁。

test03_01.php
  1. <html>
  2. <head>
  3. <title>test03_01</title>
  4. </head>
  5. <body bgcolor="#ffffff">
  6. <form method="post" action="test03_01_show.php">
  7. <table border="1">
  8. <tr>
  9. <td>請輸入成績</td>
  10. <td><input type="text" size="15" name="score"></td>
  11. </tr>
  12. <tr>   
  13. <td colspan=2><input type=submit value="評等"></td>
  14. </tr>
  15. </tr>
  16. </table>
  17. </form>
  18. </body>   
  19. </html>
複製代碼
如果表單送交的分數大於等於60分則必須顯示「及格」,所以我們單純的使用if敘述即可做到!:
test03_01_show.php
  1. <?
  2. if ($_POST["score"]>=60)
  3.   echo "您的分數". $_POST["score"] ."分,及格";
  4. ?>
複製代碼
提示!!
原始碼中的『>=』符號為一個關係運算子『大於』,它用來比較變數score和數值60的大小,如果變數score大於60則回傳True值,而在判斷式之後的敘述將會被執行,反之,在判斷式之後的敘述就不會被執行。




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