วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2557

ภาษา php (5)

คำสั่งวนซ้ำ

     ภาษา PHP มีคำสั่งที่ใช้วนซ้ำ(loop) ดังต่อไปนี้ 

1. คำสั่ง while
     เป็นคำสั่งที่ใช้วนซ้ำ โดยจะตรวจสอบเงื่อนไขก่อน ถ้าพบว่าเงื่อนไขเป็นจริง จึงจะทำคำสั่งที่อยู่ภายในลูป(loop) หลังจากนั้นจึงกลับมาตรวจสอบเงื่อนไขอีกครั้ง วนซ้ำเช่นนี้ไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ 
while (เงื่อนไข)
{
     คำสั่ง;
}

1
2
3
4
5
6
ึ7 
<?
   $size = 1;
   while ($size < 7)
   {   echo "<font size = $size color=blue>HELLO<br>";
        $size++;
   }
?>



     จากตัวอย่าง โปรแกรมจะตรวจสอบเงื่อนไขก่อนว่าเป็นจริงหรือไม่ จะเห็นว่า $size มีค่าเท่ากับ 1 ซึ่งน้อยกว่า 7 ดังนั้นเงื่อนไขจึงเป็นจริง แล้วจึงเข้าไปทำคำสั่งที่อยู่ในลูปทั้ง 2 คำสั่ง โดยเพิ่มค่า $size ขึ้นอีกหนึ่ง
     หลังจากนั้นก็กลับไปตรวจสอบเงื่อนไขต่อว่าเป็นจริงหรือไม่ ในที่นี้จะวนซ้ำทั้งสิ้น 6 รอบ 
2. คำสั่ง do..while
     คำสั่ง do..while จะมีการทำงานคล้ายกับ while แต่ต่างกันตรงที่ คำสั่ง do..while จะตรวจสอบเงื่อนไขทีหลัง นั่นคือจะมีการทำคำสั่งในลูปอย่างน้อย 1 ครั้งเสมอ เมื่อทำคำสั่งในลูปแล้วจึงตรวจสอบเงื่อนไขทีหลัง 

do
{
     คำสั่ง;
}
while (เงื่อนไข)


1
2
3
4
5
6
ึ7
8
<?
   $a = 1;
   do  
   {
      echo $a," ";
      $a++;
   } while($a<=20)
?>

3. คำสั่ง for

     สำหรับคำสั่ง for นั้น จะมีการทำงานเหมือนกับ while คือตรวจสอบเงื่อนไขหรือการเปรียบเทียบก่อน แล้วจึงทำคำสั่งภายในลูป แต่มักใช้ในกรณีที่ทราบจำนวนครั้งในการวนซ้ำที่แน่นอน 
for (กำหนดค่าเริ่มต้น ; เงื่อนไข ; การเพิ่ม/ลดค่าตัวแปร)
{
     คำสั่ง;
}

1
2
3
4
5
6
ึ7
8
9
<?
  
   for($a = 1 ; $a < 13 ; $a++)
   {
      echo "<font color=green>";
      echo "2 x $a =",2*$a,"<br>";
      echo "</font>";
   }
?>

     จากตัวอย่างที่ 15 เป็นโปรแกรมสูตรคูณแม่ 2 โดย $a จะเริ่มเก็บค่าจาก 1 ในขณะที่เงื่อนไขยังเป็นจริง (นั่นคือ $a < 13) ก็จะทำคำสั่งในลูปทั้ง 3 คำสั่ง หลังจากนั้นตัวแปร $a จะถูกเพิ่มค่าทีละหนึ่ง และทำงานไปเรื่อยๆ จนกระทั่งเงื่อนไข $a < 13 เป็นเท็จ

1
2
3
4
5
6
ึ7
8
9
10
11
<table border=1>
<?
   $a = 1;
   for($a = 1 ; $a < 13 ; $a++)
   {  
      echo "<tr>";
      echo "<td>2 x $a</td><td>",2*$a,"</td>";
      echo "</tr>";
   }
?>
</table>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น