วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2554

while loop

ในบทความนี้จะสอนถึงการวนลูปในรูปแบบคำสั่ง while บ้างนะครับ ซึ่งในคำสั่ง while loop นี้ได้แบ่งออกเป็นคำสั่ง while และคำสั่ง do .. while() แต่คำสั่ง 2 แบบนี้มีความหมายต่างกันเพียงนิดเดียวเท่านั้นครับ (ซึ่งผมได้กล่าวไว้ในหมวดหมู่ Control Structure ของ PHP แล้วครับ) เราเริ่มไปดูตัวอย่างกันเลยครับ

ตัวอย่างการใช้งานคำสั่ง while()

01.<?php
02.// การแสดงตัวเลขตั้งแต่ 1 ถึง 10
03.$i = 1;
04.while ($i <= 10) {
05.    echo "$i ";
06.    $i++;
07.}
08.echo "<br />";
09.  
10.// การแสดงตัวเลขตั้งแต่ 1-10 อีกวิธี
11.$i = 1;
12.while (true) {
13.    if ($i > 10) {
14.        break;
15.    }
16.    echo "$i ";
17.    $i++;
18.}
19.echo "<br />";
20.  
21.// ตัวอย่างการวนลูปเพื่อแสดงแม่สูตรคูณ
22.$i = 2;
23.while ($i <= 12) {
24.    $j = 1;
25.    while($j <= 12) {
26.        echo "$i * $j = " . ($i * $j) . "<br />";
27.        $j++;
28.    }
29.    echo "<br />";
30.    $i++;
31.}
32.echo "<br />";
33.  
34.?>

ตัวอย่างการใช้งานคำสั่ง do ... while()

01.<?php
02.// การแสดงตัวเลขตั้งแต่ 1 ถึง 10
03.$i = 1;
04.do {
05.    echo "$i ";
06.    $i++;
07.} while ($i <= 10);
08.echo "<br />";
09.  
10.// การแสดงตัวเลขตั้งแต่ 1-10 อีกวิธี
11.$i = 1;
12.do {
13.    if ($i > 10) {
14.        break;
15.    }
16.    echo "$i ";
17.    $i++;
18.}while (true);
19.echo "<br />";
20.  
21.// ตัวอย่างการวนลูปเพื่อแสดงแม่สูตรคูณ
22.$i = 2;
23.do {
24.    $j = 1;
25.    do {
26.        echo "$i * $j = " . ($i * $j) . "<br />";
27.        $j++;
28.    } while($j <= 12) ;
29.    echo "<br />";
30.    $i++;
31.} while ($i <= 12) ;
32.echo "<br />";
33.  
34.?>

ข้อแตกต่างของ while() กับ do...while()

01.<?php
02./*
03.สมมติในกรณีที่เราต้องการแสดงสูตรคูณตั้งแต่แม่ 12 - 1
04.แต่ผมได้กำหนดให้ค่า $i = 13
05.ซึ่งเราจะเห็นถึงความแตกต่างได้ตรงนี้ครับ
06.*/
07.  
08.$i = 13;
09.echo "While Loop:<br />";
10.while(($i >= 0) && ($i <=12)) {
11.    $j = 1;
12.    while($j <= 12) {
13.        echo "$i * $j = " . ($i*$j) . "<br />";
14.        $j++;
15.    }
16.    echo "<br />";
17.    $i--;
18.}
19.  
20.$i = 13;
21.echo "Do While Loop:<br />";
22.do {
23.    $j = 1;
24.    do {
25.        echo "$i * $j = " . ($i*$j) . "<br />";
26.        $j++;
27.    } while($j <= 12);
28.    echo "<br />";
29.    $i--;   
30.} while(($i  >= 0) && ($i <= 12));
31.?>

จะเห็นว่าถ้าเราใช้คำสั่ง do ... while() มันจะเข้าทำงานในบล็อกคำสั่งก่อนแล้วค่อยตรวจสอบเงื่อนไข ซึ่งในกรณีนี้เราได้กำหนดให้ค่า $i = 13 ดังนั้นถ้าใช้คำสั่ง while มันจะทำการตรวจสอบเงื่อนไขก่อนว่า $i มีค่าน้อยกว่าหรือ เท่ากับ 12 หรือไม่ (ไม่เท่า) ดังนั้นมันจึงไม่ทำงานในบล็อกคำสั่ง แต่ถ้าเราใช้คำสั่ง do ... while() มันจะทำงานในบล็อกก่อน แล้วค่อยตรวจสอบเงื่อนไขที่กำหนดไว้

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

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