2010年11月20日 星期六

判斷式If、else

寫過程式的一定對ifelse不陌生,幾乎所有程式語言都可以看的到它的蹤影。




這個是一個簡易的系統流程圖,也說明了ifelse的運作模式。

if (condition(條件式)) code to be executed if condition is true;

當條件式成真(true),即會執行。

Example:
<html>
<body>

<?php
$d=date("D");
if ($d=="Fri") echo "Have a nice weekend!";
?>

</body>
</html>

Date()是另一個PHP的內建函數,往後會提到,這段程式主要是先利用Date()取得系統時間是星期幾,如果是星期五(Fri)則輸出,”Have a nice weekend!”這段文字。

另一個重點是ifelse一塊使用。

if (condition(條件式))
  code to be executed if condition is true;
else
  code to be executed if condition is false;

當條件式不成利時,如果是用第一個寫法沒有加入else的話,那在if區塊裡的程式碼會被跳過而不執行,加上else,則是在不成立的狀況,執行else區塊中的程式碼。

Example:
<html>
<body>

<?php
$d=date("D");
if ($d=="Fri")
  echo "Have a nice weekend!";
else
  echo "Have a nice day!";
?>

</body>
</html>

當然,區塊中的程式碼可以不只有一行

Example:
<body>

<?php
$d=date("D");
if ($d=="Fri")
  {
  echo "Hello!<br />";
  echo "Have a nice weekend!";
  echo "See you on Monday!";
  }
?>

</body>
</html>

另外,還有一個用法
if...elseif....else

if (condition(條件式))
  code to be executed if condition is true;
elseif (condition(條件式))
  code to be executed if condition is true;
else
  code to be executed if condition is false;

這個寫法,會讓判斷式最多經過兩次判斷,如果都不成真,才會執行最後else區塊中的程式碼。

Example:
<html>
<body>

<?php
$d=date("D");
if ($d=="Fri")
  echo "Have a nice weekend!";
elseif ($d=="Sun")
  echo "Have a nice Sunday!";
else
  echo "Have a nice day!";
?>

</body>
</html>

不過,通常elseif不會使用太多,不然整個程式碼會被搞的又臭又長,所以PHP中,還有另一種判斷句switch,在後面我們會介紹到。

在介紹了ifelse的用法之後,有一點要特別提到,關於判斷句的寫法,上面的例子除了包含多行codeif區塊,都沒有加上大括號,但我建議,把加上大括號養成習慣,即使你的程式碼只有一行,這樣一來,可以放幫你有效的區隔跟閱讀原始碼。

參考資料:
PHPMySQL網頁設計實務/網奕出版/吳權威 編著

沒有留言:

張貼留言