บทความ: ทำความเข้าใจการใช้ `FOR EACH` ในภาษา COBOL ผ่านตัวอย่างง่ายๆ
การเขียนโปรแกรมเป็นศาสตร์ที่ต้องใช้ทั้งความคิดทางวิทยาศาสตร์และศิลปะในการแก้ไขปัญหา การใช้คำสั่ง `FOR EACH` ในภาษา COBOL คือหนึ่งในนั้น หากท่านกำลังมองหาการเรียนรู้การเขียนโปรแกรมที่มีงานให้ทำหลายอย่างและใช้ความคิดอย่างมีเหตุมีผล ลองพิจารณาเรียนที่ EPT ที่เราจะพาท่านไปสัมผัสกับการเขียนโค้ดอย่างมืออาชีพ
ในภาษา COBOL, `FOR EACH` ไม่ได้เป็นคำสั่งที่ใช้โดยตรงเอง แต่การทำ loop หรือการวนซ้ำสามารถทำได้โดยการใช้คำสั่ง `PERFORM` หรือ `PERFORM UNTIL` จึงทำให้เราสามารถเดินทางไปยังแต่ละสมาชิกใน Array หรือพวก Table ที่มีใน COBOL ได้ COBOL เป็นภาษาที่ถูกออกแบบมาให้รองรับกับการจัดการข้อมูลชนิดใหญ่และซับซ้อนได้อย่างดีเยี่ยม
ต่อไปนี้คือตัวอย่างการใช้ `PERFORM` เพื่อทำหน้าที่คล้าย `FOR EACH`:
ตัวอย่างที่ 1: การดึงข้อมูลทั้งหมดออกจาก Table
IDENTIFICATION DIVISION.
PROGRAM-ID. ForEachExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMBERS-TABLE.
05 NUMBER OCCURS 10 TIMES PIC 99 VALUE ZEROES.
01 INDEX PIC 99 VALUE ZEROES.
PROCEDURE DIVISION.
PERFORM VARYING INDEX FROM 1 BY 1 UNTIL INDEX > 10
DISPLAY "NUMBER AT INDEX " INDEX "is" NUMBER (INDEX)
END-PERFORM.
STOP RUN.
ในตัวอย่างข้างต้น `FOR EACH` ถูกจำลองขึ้นมาด้วยการใช้คำสั่ง `PERFORM VARYING` เพื่อที่จะเข้าถึงแต่ละข้อมูลใน Array อย่างต่อเนื่องจาก Index 1 ถึง 10 และแสดงผลออกมา
ตัวอย่างที่ 2: การประยุกต์ใช้ในโลกแห่งธุรกิจ
กรณีนี้พิจารณาธุรกิจที่ต้องการประมวลผลข้อมูลสินค้าในสต็อก:
IDENTIFICATION DIVISION.
PROGRAM-ID. InventoryLooper.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PRODUCTS-TABLE.
05 PRODUCT OCCURS 100 TIMES.
10 PRODUCT-ID PIC X(10).
10 PRODUCT-NAME PIC X(50).
10 PRODUCT-STOCK PIC 99.
PROCEDURE DIVISION.
PERFORM VARYING INDEX FROM 1 BY 1 UNTIL INDEX > PRODUCT-STOCK (PRODUCT-ID)
DISPLAY "PRODUCT NAME: " PRODUCT-NAME (INDEX)
" STOCK LEFT: " PRODUCT-STOCK (INDEX)
END-PERFORM.
STOP RUN.
ในที่นี้เราใช้ `PERFORM` เพื่อระบุและแสดงข้อมูลสินค้าทุกชนิดที่มีในสต็อก เช่น หากมีการเก็บสินค้า 100 ชนิดใน PRODUCTS-TABLE.
ตัวอย่างที่ 3: การใช้ในการจัดสรรธุระอัตโนมัติ
ในโลกของการจัดสรรงานหรือ Task Scheduling ในบรรษัทใหญ่ๆ:
IDENTIFICATION DIVISION.
PROGRAM-ID. TaskScheduler.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TASKS-TABLE.
05 TASK OCCURS 10 TIMES.
10 TASK-ID PIC X(5).
10 TASK-DESC PIC X(50).
10 TASK-STATUS PIC X(01) VALUE "N".
PROCEDURE DIVISION.
PERFORM VARYING INDEX FROM 1 BY 1 UNTIL TASK-STATUS (INDEX) = "Y"
IF TASK-STATUS (INDEX) = "N" THEN
PERFORM ASSIGN-TASK TO TASK-ID (INDEX)
MOVE "Y" TO TASK-STATUS (INDEX).
END-IF
END-PERFORM.
STOP RUN.
ในตัวอย่างใช้ `PERFORM` เพื่อตรวจสอบสถานะของงานที่สูงสุด และการจัดสรรงานให้เมื่อพบว่ายังไม่ได้ถูกจัดสรร (TASK-STATUS = "N").
การเรียนรู้การใช้คำสั่งที่คล้าย `FOR EACH` ในภาษา COBOL ไม่เพียงแต่สะท้อนถึงความสามารถในการจัดการข้อมูลในรูปแบบต่างๆ แต่ยังเป็นตัวอย่างที่ดีของวิธีการวิเคราะห์ปัญหาร่วมกับการเขียนโค้ดในลักษณะที่มีระบบระเบียบและมีส่วนร่วมกับรูปแบบการทำงานในวิชาธุรกิจหลากหลายรูปแบบ
หากต้องการค้นพบพลังของการเขียนโปรแกรมที่มีประสิทธิภาพและการตัดสินใจแบบตรรกะอย่างละเอียด ลองมาเรียนที่ EPT และฝึกฝนกับเรา คุณจะได้พบกับหลักสูตรที่ออกแบบมาเพื่อเติมเต็มความต้องการทักษะด้านการเขียนโปรแกรมในยุคข้อมูลขนาดใหญ่นี้ และต่อยอดไปสู่การเป็นนักพัฒนาซอฟต์แวร์มืออาชีพ
ด้วยรู้และใช้งาน COBOL คุณสามารถเปิดโลกของการเข้าถึงระบบไฟแนนซ์, ธนาคาร, บริหารสินค้าคงคลัง และหลายๆ อุตสาหกรรมต่างๆ ที่ยังคงใช้ภาษาโปรแกรมนี้อยู่เป็นจำนวนมาก มาร่วมเป็นส่วนหนึ่งของสายอาชีพที่รุ่งเรืองด้วยพื้นฐานทางความรู้จาก EPT กันเถอะ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol for_each perform_varying array table programming data_manipulation business_use_cases task_scheduling professional_coding ept software_development efficient_programming business_applications data_processing
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM