Cách sử dụng vòng lặp trong Common Business-Oriented Language (COBOL)
Chào các bạn! Trong bài viết này, chúng ta sẽ khám phá cách tạo các câu lệnh vòng lặp trong ngôn ngữ lập trình Common Business-Oriented Language (COBOL). COBOL có một vài điểm khác biệt khi nói đến cấu trúc vòng lặp (đó là lý do tại sao tôi viết nhiều về ngôn ngữ này haha).
COBOL không có các vòng lặp for hoặc while trực tiếp. Thay vào đó, nó sử dụng câu lệnh PERFORM để xử lý vòng lặp. COBOL có thể triển khai các vòng lặp tương tự như:
- Vòng lặp kiểm soát số lần (tương tự như vòng lặp
for) - Vòng lặp kiểm soát điều kiện (tương tự như vòng lặp
while)
1. Vòng lặp kiểm soát số lần (For Loop)
Hãy cùng tìm hiểu phần cơ bản của đoạn mã sau!
1.1 Nhập liệu từ người dùng
coffeescript
DISPLAY "Nhập một số từ 1 đến 10: ".
ACCEPT userInput.
Đây là cách chúng ta nhận dữ liệu từ người dùng trong COBOL. Câu lệnh DISPLAY hiển thị một thông điệp trên màn hình, yêu cầu người dùng nhập giá trị. Câu lệnh ACCEPT sẽ đọc dữ liệu nhập vào từ người dùng và gán nó cho biến userInput. Trong ví dụ này, userInput được định nghĩa để lưu trữ các giá trị số nguyên.
1.2 Câu lệnh PERFORM VARYING
coffeescript
PERFORM VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > userInput
DISPLAY "Hello World " COUNTER " lần."
END-PERFORM.
Đây là cách thực hiện vòng lặp for trong COBOL. Dưới đây là các bước:
- PERFORM VARYING là câu lệnh đầu tiên cần thực hiện để tạo vòng lặp
fortrong COBOL. Nó được sử dụng để chạy một khối mã (ví dụ: vòng lặp này) trong chương trình chính. - VARYING sẽ giới thiệu một biến điều khiển vòng lặp sẽ thay đổi ở mỗi lần lặp. Trong trường hợp này, VARYING sẽ thay đổi giá trị của biến COUNTER ở mỗi lần lặp. Chúng ta đang nói rằng "VARYING đang điều chỉnh giá trị của COUNTER ở mỗi vòng lặp".
- COUNTER là biến điều khiển vòng lặp. Giá trị của COUNTER sẽ thay đổi ở mỗi lần lặp. Từ đoạn mã này, COUNTER sẽ bắt đầu từ 1.
- FROM 1 chỉ định giá trị bắt đầu của biến điều khiển vòng lặp. Từ đây, COUNTER bắt đầu từ 1.
- BY 1 chỉ định giá trị tăng cho mỗi lần lặp của vòng lặp. Đoạn mã này giải thích rằng COUNTER sẽ tăng lên 1 cho mỗi lần lặp.
- UNTIL COUNTER > userInput là điều kiện thoát của vòng lặp. Vòng lặp sẽ tiếp tục cho đến khi giá trị của COUNTER lớn hơn giá trị userInput mà chúng ta đã thiết lập. Sau đó, vòng lặp sẽ dừng lại.
- DISPLAY "Hello World" COUNTER "lần" in thông điệp một lần cho mỗi vòng lặp, hiển thị giá trị hiện tại của COUNTER mỗi lần, cho đến khi COUNTER vượt quá userInput.
- END-PERFORM đóng vòng lặp và cho COBOL biết nơi các câu lệnh lặp lại dừng lại trong chương trình!
Kết quả
(NOTE: trường nhập liệu Nhập một số từ 1 đến 10: là một trường nhập, tôi đã nhập số 10 haha)
Đó là cách bạn thực hiện một vòng lặp kiểm soát số lần, kỹ thuật tương tự như vòng lặp for. Bây giờ, hãy chuyển sang phần khác của bài viết, một vòng lặp while hoặc trong thuật ngữ COBOL, Vòng lặp kiểm soát điều kiện!
2. Vòng lặp kiểm soát điều kiện (While Loop)
Khá tương tự với Vòng lặp kiểm soát số lần đúng không? Vâng, thuật toán về cơ bản giống nhau, thông qua việc xác định và khai báo các biến. Hãy cùng khám phá từ khóa cho phép chương trình thực hiện một Vòng lặp kiểm soát điều kiện.
2.1 PERFORM UNTIL COUNTER > 10
coffeescript
PERFORM UNTIL COUNTER > 10
DISPLAY "Giá trị Counter: " COUNTER
ADD 1 TO COUNTER
END-PERFORM.
Một giải thích cụ thể như sau:
- UNTIL là từ khóa đặc biệt cho phép chương trình COBOL thực hiện Vòng lặp kiểm soát điều kiện. Từ khóa này được sử dụng để so sánh giá trị hiện tại của COUNTER với giá trị 100. Trong trường hợp này, chúng ta đã tạo một điều kiện rằng thao tác sẽ thực hiện hiển thị thông điệp cho đến khi giá trị của COUNTER lớn hơn 100. Nếu giá trị COUNTER lớn hơn giá trị 100, vòng lặp sẽ kết thúc và thao tác hiển thị sẽ dừng lại.
Kết quả
Đây là sự khác biệt duy nhất giữa hai vòng lặp này trong COBOL!
Những điểm cần lưu ý
- COBOL không có từ khóa
forhoặcwhile, nhưngPERFORMbao quát cả hai trường hợp một cách rõ ràng. - Chọn
PERFORM VARYINGkhi vòng lặp của bạn hoàn toàn số và có thể dự đoán. - Chọn
PERFORM UNTILkhi vòng lặp nên tiếp tục cho đến khi một quy tắc kinh doanh hoặc điều kiện bên ngoài được thỏa mãn.
Thực hành tốt nhất
- Kiểm tra kỹ các biến điều khiển vòng lặp để tránh vòng lặp vô tận.
- Sử dụng các câu lệnh
DISPLAYđể gỡ lỗi và theo dõi giá trị của các biến.
Những cạm bẫy thường gặp
- Quên cập nhật giá trị của biến điều khiển dẫn đến vòng lặp vô tận.
- Xác định sai điều kiện thoát dẫn đến không bao giờ thoát khỏi vòng lặp.
Mẹo hiệu suất
- Sử dụng các vòng lặp hiệu quả để tránh làm chậm chương trình, đặc biệt là trong các ứng dụng lớn.
Cảm ơn các bạn đã dành thời gian đọc bài viết này! Hãy tiếp tục theo dõi cho các phần tiếp theo trong loạt bài COBOL và chia sẻ cho chúng tôi những ý kiến và đề xuất của bạn để cải thiện loạt bài này hơn nữa.