Tổng quan về câu lệnh điều khiển
Câu lệnh điều khiển được thiết kế để tổ chức việc thực thi không tuyến tính của các câu lệnh khác, bao gồm khai báo, biểu thức và các câu lệnh điều khiển lồng nhau. Chúng có thể được chia thành 3 loại:
- Câu lệnh lặp lại, hay vòng lặp
- Câu lệnh điều kiện để chọn một trong số các nhánh hành động thay thế
- Câu lệnh nhảy để thay đổi, nếu cần, hành vi tiêu chuẩn của hai loại câu lệnh trên
Câu lệnh lặp lại và câu lệnh lựa chọn bao gồm một tiêu đề (mỗi loại có cú pháp khác nhau) theo sau bởi một câu lệnh được điều khiển. Nếu phần được quản lý cần chỉ định nhiều câu lệnh, nó sử dụng một câu lệnh ghép. Tính năng này không khả dụng cho câu lệnh nhảy. Chúng chỉ di chuyển con trỏ nội bộ, dựa vào đó chương trình xác định câu lệnh nào hiện đang được thực thi, theo các quy tắc đặc biệt mà chúng ta sẽ thảo luận trong các phần tiếp theo.
Trong trường hợp đơn giản nhất, không có câu lệnh điều khiển, các câu lệnh được thực thi tuần tự, từng cái một, theo cách chúng được viết trong khối mã (đặc biệt, trong thân của hàm chính OnStart
đối với các script). Nếu một biểu thức có lời gọi tới hàm khác được gặp trong một khối mã, chương trình, theo nguyên tắc tuyến tính tương tự, bắt đầu thực thi các câu lệnh bên trong hàm được gọi, và khi tất cả chúng được thực thi, nó sẽ quay lại khối mã gọi, và việc thực thi sẽ tiếp tục ở câu lệnh tiếp theo sau lời gọi hàm. Câu lệnh điều khiển có thể thay đổi đáng kể logic hoạt động này.
Bạn có thể sử dụng lựa chọn bên trong các vòng lặp hoặc ngược lại, và mức độ lồng nhau là không giới hạn. Tuy nhiên, quá nhiều lồng nhau khiến chương trình khó hiểu đối với lập trình viên. Do đó, nên phân bổ (chuyển) các khối mã vào các hàm (một hoặc nhiều): bên trong mỗi hàm, nên duy trì mức độ lồng nhau không quá 2-3.
Các câu lệnh lặp lại sau được hỗ trợ trong MQL5:
- Vòng lặp
for
- Vòng lặp
while
- Vòng lặp
do
Tất cả các vòng lặp cho phép thực thi một hoặc nhiều câu lệnh một số lần nhất định hoặc cho đến khi một điều kiện boolean được đáp ứng. Việc thực thi nội dung của một vòng lặp một lần được gọi là một lần lặp. Theo quy tắc, các mảng được xử lý trong vòng lặp hoặc các hành động lặp lại định kỳ được thực hiện (thường trong script hoặc dịch vụ).
Các câu lệnh điều kiện bao gồm:
- Lựa chọn với
if
- Lựa chọn với
switch
Loại đầu tiên cho phép bạn chỉ định một hoặc nhiều điều kiện, tùy thuộc vào tính đúng hay sai của chúng, các tùy chọn được gán cho chúng (một hoặc nhiều câu lệnh) sẽ được thực thi. Loại thứ hai đánh giá một biểu thức kiểu số nguyên và chọn một trong số các lựa chọn thay thế dựa trên giá trị của nó.
Cuối cùng, các câu lệnh nhảy bao gồm:
break
continue
return
Sau này chúng ta sẽ xem xét từng câu lệnh này một cách chi tiết.
Không giống như C++, MQL5 không có câu lệnh go to
.