2010年11月29日 星期一

迴圈-While Loops

在這裡談到程式撰寫中非常重要的概念,關於迴圈,簡單來說就是讓電腦替我們重覆執行某種行為或是事件。


W3S中的註釋:
Loops execute a block of code a specified number of times, or while a specified condition is true.

當給予迴圈條件成立時,將會執行該區塊中的程式碼。

PHP中的迴圈:
while - loops through a block of code while a specified condition is true
當條件式成立時,則會執行區塊中的程式碼。

do...while - loops through a block of code once, and then repeats the loop as long as a specified condition is true
跟「while – loops」不同的地方是,它先執行區塊裡的一次,然後再確認判斷式是否成真(true),是的話再執行一次,換句話說,不管如何,它都最少都會執行一次。

for - loops through a block of code a specified number of times
以指定執行次數的方式來進行迴圈內的程式碼。

foreach - loops through a block of code for each element in an array
這個迴圈是針對陣列來使用,指定一個陣列給它,他會跟據陣列中有幾個元素而執行幾次。


The while loop
語法(Syntax
while (condition)
  {
  code to be executed;
  }

Example
<html>
<body>

<?php
$i=1;
while($i<=5)
  {
  echo "The number is " . $i . "<br />";
  $i++;
  }
?>

</body>
</html>

該迴圈的判斷式為($i<=5),因為我們一開始給$i的值是「1」,所以這個迴圈會執行5次後才會跳出,而在區塊(block)中的最後一行,會執行$i++,表示的是,$i變數會遞增(每次加1),如果少了這一行,你將會陷入一個「無限迴圈」,所以它是必須存在的,當然,也有另一種中斷迴圈的方式,它是透過像是「if」判斷式來做配合,這個後面再做介紹。

而上一段程式碼執行後的輸出如下:
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

The do...while
語法(Syntax
do
  {
  code to be executed;
  }
while (condition);

Example
<html>
<body>

<?php
$i=1;
do
  {
  $i++;
  echo "The number is " . $i . "<br />";
  }
while ($i<=5);
?>

</body>
</html>

輸出結果:
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6

看出了不一樣的地方了嗎?

跟之前提過的一樣,「do – while」會先執行一次再對條件式內容進行判斷,我們一開始給於$i的值是1,而區塊內的程式碼第一次就是$i++,所以在第一次輸出的時候$i就是2了,一直執行到第5$i變成6後,條件式$i不再小於或等於5了,則跳出這段迴圈。

或許看到這邊你會有一個疑問,while –loopdo… while看起來似乎是一樣的東西,為什麼有這兩者呢?

當然,有需要才會有需求,所以就是會有要先執行一次的需求,才會有do… while這個迴圈,往後的列子中遇到我們再進一步的解說,首先,你只要先瞭解這兩者的差別。

下一篇將針對for以及foreach進行解說。

PHPMySQL網頁設計實務/網奕出版/吳權威 編著

沒有留言:

張貼留言