# การใช้งาน loop และ if-else ภายใน loop ในภาษา COBOL
ในโลกของการเขียนโปรแกรม, โครงสร้างการควบคุมที่หลายคนรู้จักกันดีคือ loop (วงวน) และ if-else (การตัดสินใจ) ซึ่งมีความสำคัญยิ่งในการเขียนโปรแกรมที่มีประสิทธิภาพ ในภาษา COBOL, ซึ่งเป็นภาษาที่มีความเชี่ยวชาญในการจัดการข้อมูลธุรกิจและระบบรายงาน, การใช้ loop และ if-else เป็นส่วนสำคัญที่ช่วยให้โปรแกรมสามารถทำงานได้ตามเงื่อนไขที่กำหนด รวมถึงการดำเนินการที่ซับซ้อนต่างๆ
วงวนใน COBOL ใช้สำหรับการทำซ้ำขั้นตอนบางอย่าง เช่น การอ่านข้อมูลจากไฟล์ซ้ำๆ จนกว่าข้อมูลจะหมด Loop สามารถสร้างขึ้นได้โดยใช้คำสั่ง `PERFORM` และสามารถควบคุมได้ด้วยเงื่อนไขที่ระบุงานที่จะทำซ้ำ (เช่น BY UNTIL หรือ VARYING).
การใช้งาน if-else ภายใน loop ให้พวกเราความยืดหยุ่นในการตัดสินใจภายใน loop ตัวอย่างเช่น คุณอาจต้องการที่จะกระทำการต่างๆ ขึ้นอยู่กับข้อมูลที่ถูกดำเนินการภายในวงวน การใช้ if-else ในสถานการณ์นี้สามารถช่วยให้โปรแกรมทำงานได้อย่างมีประสิทธิภาพ.
ตัวอย่างที่ 1: การอ่านไฟล์ข้อมูลพนักงานและตรวจสอบเงื่อนไข
IDENTIFICATION DIVISION.
PROGRAM-ID. EMPLOYEE-LOOP-CHECK.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE-FILE.
01 EMPLOYEE-RECORD.
05 EMPLOYEE-ID PIC 9(4).
05 EMPLOYEE-AGE PIC 9(2).
WORKING-STORAGE SECTION.
01 EOF-FLAG PIC X VALUE 'N'.
PROCEDURE DIVISION.
START-READ.
OPEN INPUT EMPLOYEE-FILE.
PERFORM UNTIL EOF-FLAG = 'Y'
READ EMPLOYEE-FILE
AT END
MOVE 'Y' TO EOF-FLAG
NOT AT END
PERFORM CHECK-EMPLOYEE-AGE
END-READ
END-PERFORM.
CLOSE EMPLOYEE-FILE.
STOP RUN.
CHECK-EMPLOYEE-AGE.
IF EMPLOYEE-AGE > 60
DISPLAY "EMPLOYEE " EMPLOYEE-ID " IS ELIGIBLE FOR RETIREMENT"
ELSE
DISPLAY "EMPLOYEE " EMPLOYEE-ID " IS NOT ELIGIBLE FOR RETIREMENT"
END-IF.
ในตัวอย่างนี้, โปรแกรม COBOL อ่านแต่ละบันทึกข้อมูลของพนักงานจากไฟล์และสำหรับแต่ละบันทึก, มันตรวจสอบว่าพนักงานมีอายุเกินกว่า 60 ปีหรือไม่และแสดงข้อความที่สอดคล้องกัน.
ตัวอย่างที่ 2: การเพิ่มลำดับนับของพนักงานในแต่ละแผนก
IDENTIFICATION DIVISION.
PROGRAM-ID. DEPT-EMPLOYEE-COUNTER.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE-FILE.
01 EMPLOYEE-RECORD.
05 DEPARTMENT-ID PIC 9(2).
05 EMPLOYEE-NAME PIC X(20).
WORKING-STORAGE SECTION.
01 EMP-COUNTERS OCCURS 10 TIMES INDEXED BY I.
05 EMP-COUNT PIC 9(4) VALUE 0.
PROCEDURE DIVISION.
START-READ.
OPEN INPUT EMPLOYEE-FILE.
PERFORM UNTIL EOF
READ EMPLOYEE-FILE
AT END
MOVE 'Y' TO EOF
NOT AT END
PERFORM INCREMENT-COUNTER
END-READ
END-PERFORM.
CLOSE EMPLOYEE-FILE.
DISPLAY "EMPLOYEE COUNT BY DEPARTMENT".
PERFORM WITH TEST AFTER VARYING I FROM 1 BY 1 UNTIL I > 10
DISPLAY "DEPT " I " EMPLOYEE COUNT: " EMP-COUNTERS (I)
END-PERFORM.
STOP RUN.
INCREMENT-COUNTER.
SET I TO DEPARTMENT-ID.
ADD 1 TO EMP-COUNTERS (I).
ในตัวอย่างนี้, โปรแกรม COBOL นับจำนวนพนักงานในแต่ละแผนก โดยใช้ loop `PERFORM` ที่วนซ้ำผ่านทุกบันทึกในไฟล์พนักงานและเพิ่มจำนวนนับในอาเรย์ `EMP-COUNTERS`.
ตัวอย่างที่ 3: ตรวจสอบจำนวนชั่วโมงทำงานของพนักงานและคิดค่าล่วงเวลา
IDENTIFICATION DIVISION.
PROGRAM-ID. EMPLOYEE-OVERTIME-CALC.
DATA DIVISION.
FILE SECTION.
FD TIME-SHEET.
01 TIME-RECORD.
05 EMPLOYEE-ID PIC 9(4).
05 HOURS-WORKED PIC 9(3).
WORKING-STORAGE SECTION.
01 STANDARD-HOURS PIC 9(2) VALUE 40.
01 OVERTIME-RATE DECIMAL-5-2 VALUE 1.5.
01 OVERTIME-HOURS PIC 9(2).
01 OVERTIME-PAY DECIMAL-7-2.
PROCEDURE DIVISION.
START-READ.
OPEN INPUT TIME-SHEET.
PERFORM UNTIL EOF
READ TIME-SHEET
AT END
MOVE 'Y' TO EOF
NOT AT END
PERFORM CALC-OVERTIME
END-READ
END-PERFORM.
CLOSE TIME-SHEET.
STOP RUN.
CALC-OVERTIME.
IF HOURS-WORKED > STANDARD-HOURS
COMPUTE OVERTIME-HOURS = HOURS-WORKED - STANDARD-HOURS
COMPUTE OVERTIME-PAY = OVERTIME-HOURS * OVERTIME-RATE
DISPLAY "EMPLOYEE " EMPLOYEE-ID " OVERTIME PAY: " OVERTIME-PAY
END-IF.
ในตัวอย่างนี้, โปรแกรม COBOL วนซ้ำผ่านบันทึกชั่วโมงการทำงานของพนักงานและเมื่อพบว่า
พนักงานทำงานเกินจากชั่วโมงมาตรฐานที่กำหนดไว้ (40 ชั่วโมง), มันจะคำนวณค่าล่วงเวลาและแสดงผล.
การใช้ loops และ if-else statements ใน COBOL สามารถประยุกต์ใช้กับหลายสถานการณ์ในโลกธุรกิจจริง ตัวอย่างเช่น:
- การสร้างรายงานสรุปยอดขายตามแผนกต่างๆ ภายในองค์กร
- การจัดการฐานข้อมูลพนักงานและการคำนวณสิทธิประโยชน์
- การประมวลผลข้อมูลธนาคารเช่น การตรวจสอบยอดเงินขั้นต่ำและการคิดค่าธรรมเนียม
การเรียนรู้และทำความเข้าใจ loop และ if-else ใน COBOL ไม่เพียงช่วยให้คุณสามารถเข้าร่วมในโครงการธุรกิจระดับใหญ่ที่ยังคงใช้ COBOL เป็นหัวใจหลักของพวกเขา แต่ยังเปิดโอกาสให้คุณเป็นผู้เชี่ยวชาญที่มีความรู้พื้นฐานที่มั่นคง ที่ EPT (Expert-Programming-Tutor), เรามีหลักสูตรที่จะช่วยให้คุณเรียนรู้ COBOL และแนวคิดการเขียนโปรแกรมอื่นๆ อย่างลึกซึ้ง โดยมีผู้เชี่ยวชาญที่ยินดีแนะนำและสนับสนุนความสำเร็จของคุณในการเป็นนักพัฒนาโปรแกรมที่หาที่สุดไม่ได้!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: cobol loop if-else programming business control_structure data_management decision_making code_example real-world_use_case
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM