บทความ: การใช้งาน while loop ในภาษา COBOL
หากพูดถึงวงการโปรแกรมมิ่ง หนึ่งในภาษาโปรแกรมมิ่งที่ยังคงมีบทบาทที่ไม่สามารถมองข้ามได้ นั่นคือภาษา COBOL (Common Business-Oriented Language) ที่ถูกออกแบบมาเพื่อการประมวลผลข้อมูลแบบธุรกิจ ถึงแม้วันเวลาจะผ่านไป COBOL แม้จะแปลกตาแต่ก็ยังคงถูกใช้งานในระบบหลังบ้านของธนาคาร บริษัทประกัน และองค์กรทางการเงินจำนวนมาก ในบทความนี้ เราจะทำความรู้จักกับลูป (loop) แบบหนึ่งที่สำคัญในภาษา COBOL นั่นคือ "while loop" หรือที่ใน COBOL จะเรียกว่าการทำงานแบบ PERFORM UNTIL พร้อมไปด้วยตัวอย่างและการประยุกต์ใช้กับ usecase ในโลกจริง
ในภาษา COBOL ไม่มี while loop ในแบบที่ภาษาอื่นๆ อย่าง Python หรือ Java มีอยู่โดยตรง แต่เราสามารถจำลอง while loop ได้โดยการใช้คำสั่ง PERFORM ร่วมกับ UNTIL condition เพื่อที่จะทำซ้ำโค้ดบล็อกจนกว่าเงื่อนไขจะเป็นจริง
PERFORM WITH TEST AFTER UNTIL condition
[statements]
END-PERFORM
ในโครงสร้างดังกล่าว `PERFORM WITH TEST AFTER` บ่งบอกว่าจะต้องทดสอบเงื่อนไขหลังจาก statements ข้างในถูกทำซ้ำ และจะหยุดการทำงานเมื่อ `condition` เป็นจริง
ตัวอย่างที่ 1: การนับจำนวน
สมมติว่าเราต้องการนับจาก 1 ถึง 10 ในภาษา COBOL เราสามารถทำได้ดังนี้:
IDENTIFICATION DIVISION.
PROGRAM-ID. COUNT-EXAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COUNTER PIC 9 VALUE 1.
PROCEDURE DIVISION.
PERFORM WITH TEST AFTER UNTIL COUNTER > 10
DISPLAY 'COUNT: ' COUNTER
ADD 1 TO COUNTER
END-PERFORM.
STOP RUN.
ในตัวอย่างนี้ `COUNTER` คือตัวแปรที่เริ่มต้นที่ 1 จะถูกทำซ้ำการเพิ่มค่าจนกว่าจะมากกว่า 10 เราใช้ `DISPLAY` สำหรับการแสดงผล และ `ADD 1 TO COUNTER` สำหรับการนับเพิ่ม
ตัวอย่างที่ 2: การตรวจสอบข้อมูลก่อนการประมวลผล
IDENTIFICATION DIVISION.
PROGRAM-ID. DATA-CHECK.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-INPUT PIC 9(4).
01 DATA-VALID PIC X(3) VALUE 'NO '.
PROCEDURE DIVISION.
PERFORM WITH TEST AFTER UNTIL DATA-VALID = 'YES'
ACCEPT USER-INPUT
IF USER-INPUT NOT NUMERIC THEN
DISPLAY 'INVALID DATA, PLEASE TRY AGAIN.'
ELSE
MOVE 'YES' TO DATA-VALID
END-IF
END-PERFORM.
STOP RUN.
ในตัวอย่างนี้ `DATA-VALID` ใช้เป็นเงื่อนไขในการทำซ้ำ โดยที่โค้ดจะรับค่า `USER-INPUT` ผ่านคำสั่ง `ACCEPT`และจะประเมินว่าข้อมูลที่รับมาถูกต้องหรือไม่ หากไม่ถูกต้องจะแจ้งเตือนผ่าน `DISPLAY`
ตัวอย่างที่ 3: การอ่านข้อมูลจากไฟล์จนถึง EOF (End-of-file)
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-READ-EXAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 END-OF-FILE-REACHED PIC X(3) VALUE 'NO '.
01 FILE-RECORD PIC X(100).
FILE SECTION.
FD YOURFILE.
01 YOURFILE-RECORD PIC X(100).
PROCEDURE DIVISION.
OPEN INPUT YOURFILE.
PERFORM WITH TEST AFTER UNTIL END-OF-FILE-REACHED = 'YES'
READ YOURFILE INTO FILE-RECORD
AT END
MOVE 'YES' TO END-OF-FILE-REACHED
NOT AT END
DISPLAY FILE-RECORD
END-READ
END-PERFORM.
CLOSE YOURFILE.
STOP RUN.
ในตัวอย่างนี้ เราต้องการอ่านข้อมูลจากไฟล์จนกว่าจะถึงสิ้นสุดของไฟล์ โดยใช้คำสั่ง `READ` ร่วมกับ `AT END`เพื่อตรวจสอบสถานะEOF
หนึ่งใน use case ที่เป็นตัวอย่างของการใช้งาน while loop อย่างมีประสิทธิภาพในโลกจริงคือในระบบการจัดการฐานข้อมูลลูกค้าของธนาคาร เราอาจเก็บรายการลูกค้าเป็นไฟล์รายการที่ต้องทำการประมวลผลวันละครั้ง เช่น การตรวจสอบยอดเงินขั้นต่ำในบัญชีสำหรับการหลีกเลี่ยงค่าธรรมเนียมบำรุงรักษา นี่เป็นงานที่ต้องทำซ้ำๆ และการใช้ loop จะทำให้เราสามารถจัดการกับประเด็นนี้ได้อย่างอัตโนมัติโดยไม่ต้องมีการแทรกแซงจากมนุษย์ ทำให้กระบวนการทำงานรวดเร็วและลดความเสี่ยงจากข้อผิดพลาดมนุษย์ได้เป็นอย่างดี
และแน่นอนว่า สำหรับคุณที่อ่านบทความนี้แล้วมีความสนใจในการเขียนโค้ดและการเรียนรู้ภาษา COBOL วิทยาลัย Expert-Programming-Tutor พร้อมต้อนรับคุณเข้าสู่โลกของการเข้ารหัส เรามีหลักสูตรและผู้เชี่ยวชาญที่จะนำพาคุณไปพบกับการเรียนรู้และการนำไปใช้งานอย่างมืออาชีพในอุตสาหกรรมที่ยังมีความต้องการภาษาโปรแกรมมิ่งเช่นนี้อย่างต่อเนื่อง สนใจสมัครเรียนกับเราได้ที่ EPT แล้วเริ่มต้นก้าวของคุณในการเป็นนักโปรแกรมมิ่งมืออาชีพได้เลย!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol while_loop loop_in_cobol perform_until programming_language code_examples data_processing business-oriented_language backend_systems real-world_use_case programming_education data_validation file_processing eof_handling automated_processing
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM