เริ่มต้นเขียนโปรแกรม Chapter 7 (Loop For, Foreach)

0
1099

เริ่มต้นเขียนโปรแกรม

Loop

วันนี้จะพูดถึงการเขียนโปรแกรมที่ ทำแบบซ้ำๆ หรือการกระทำซ้ำๆ เช่น การนับหมายเลข 1 ห้าร้อยครั้ง หรือ ให้ไปตลาด 50 ครั้ง ซึ่งการเขียนโปรแกรม แบบ Loop เหล่านี้สามารถ ย่นระยะเวลาในการทำงานได้เป็นอย่างมาก การเขียนโปรแกรมที่มีความซับซ้อนมากยิ่งขึ้นนั้น จำเป็นต้องมี Loop เป็นตัวช่วยในเรื่อง การประมวลผลหรือ รวมไปถึงการแสดงผลของข้อมูลที่ถูกต้อง สิ่งเหล่านี้ Developer ทั้งหลายจะข้ามไปไม่ได้เลย และต้องทำความเข้าใจถึงแก่นแท้ของคำว่า Loop

For, Foreach

ตัวอย่างการใช้งานแรก For คืออะไร For คือ Loop ชนิดหนึ่งที่ต้องกำหนดจำนวน Loop ที่ชัดเจน หากไม่ได้กำหนด Loop ที่ชัดเจนแล้ว การทำงานของ For ก็จะ เกิด Infinity Loop หากเกิด Infinity Loop ผลตามมาก็คือ Methods ค้าง หรือหน้า page ค้าง เพราะว่าการประมวลผลเรื่อยและหนักขึ้นเรื่อยๆ ไม่สามารถทำให้มันหยุดเนื่องจากเงื่อนไขบางประการ

<?php
    $isNumber = 10;
    for($i=1;$i<=$isNumber;$i++){
        echo $i.'
';
    }
?>

จากตัวอย่างข้างต้น ที่ได้ทำการ Highlight บรรทัดที่ 3 ไว้นั้น จะเห็นได้ว่า มีการกำหนดรอบที่ชัดเจนคือ หาก $i น้อยกว่าหรือเท่ากับ $isNumber ก็จะแสดงผล $i ไปเรื่อยๆ ชุดแรกเป็นการกำหนดให้ $i หรือว่าตัวแปร ให้มีค่าเริ่มต้นเท่ากับ 1 จากนั้น เงื่อนไขจะทำงานก็ต่อเมื่อ หาก $i น้อยกว่าหรือเท่ากับ $isNumber จริง ก็จะให้โปรแกรมทำงานใต้วงเล็บปีกกา หรือ {} ของ for ทันที แล้ว ให้ $i++ หรือ ให้ $i เพิ่มค่าทีละ 1 ไปเรื่อยๆ จะกว่า เงื่อนไข จะเป็นเท็จ

Foreach

Foreach คืออะไร คือการวนลูปแบบที่ว่า หากมีจำนวนหรือ Index เท่าไรก็ช่างอยู่ในตัวแปรดังกล่าว ให้ทำจนหมด การใช้ foreach นั้น ไม่จำเป็นต้องรู้จำนวนรอบทั้งหมดก็ได้ แต่ ตัวแปรดังกล่าว ต้องเป็นชนิด Array, Object เท่านั้น เนื่องจาก เป็น Loop พิเศษทำให้ ใช้งานได้แค่สองประเภทตัวแปร นี้เท่านั้น ตัวอย่างเช่น

<?php $istokenArray = ['F80','F81','F82','F99','F42','F9']; $istokenObject = new stdClass(); $istokenObject->name 	= 'Off';
    $istokenObject->sname 	= 'Smith';
    $istokenObject->tel 	= '0888888888';
    $istokenObject->address     = 'Thailand';
    $istokenObject->zip 	= '50000';
    //example array variable
    foreach($istokenArray AS $keys => $val){
        echo $keys.' '.$val;
    }
    //example object variable
    foreach($istokenObjectAS $keys => $val){
        echo $keys.' '.$val;
    }
?>




จากตัวอย่าง บรรทัดที่ 11 เป็นการวน Loop ด้วยการใช้ตัวแปร ชนิด Array จะได้เห็นว่า มีตัวแปรชนิดหนึ่ง $keys ซึ่งเป็น index ของ array หากเราไม่ได้กำหนด เริ่มต้น index ของ array จะเป็น 0 และนับไปเรื่อยๆ แต่บรรทัดที่ 13 จะเป็นการวน Loop ด้วย Object เช่นกัน $keys จะแสดง คำว่า name, sname, tel, address and zip

ทำไมต้อง $i++ วนลูปกลับไม่ได้หรือ?

เป็นคำถามที่ดีมากสำหรับ การคิดต่างค่ะ โดยปกติทั่วไปแล้วการคิด เป็นวิธีการอย่างหนึ่งที่ทำให้เกิดความซับซ้อนระหว่างการทำงานได้ บางคนถนัดไปอีกแบบ ไม่เสมอไปที่ว่า เขียนแบบนี้ผิด แต่เป็นการบังคับใช้ตามสถานะการที่จะเกิดขึ้นต่างหาก ยกตัวอย่างเช่น

<?php $istokenArray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; for($i=16;$i>=0;$i--){
        if($i%2==0){
            echo $i.' is event. 
';
        }
    }
?>

เป็นยังไงกันบ้างค่ะ? สำหรับบทเรียน “เริ่มต้นเขียนโปรแกรม Chapter 7 (Loop For, Foreach)” บทเรียนนี้เจาะลึกเกี่ยวกับการใช้ For และ Foreach หวังว่าการใช้งาน Loop ที่ชื่อ For, Foreach นั้นจะถูกใจและทำให้ผู้อ่านเข้าใจถึง Loop นี้ไม่มากก็น้อยค่ะ

ทิ้งคำตอบไว้

Please enter your comment!
Please enter your name here