Continue jump
Câu lệnh continue ngắt vòng lặp hiện tại của vòng lặp bên trong nhất chứa continue và bắt đầu vòng lặp tiếp theo. Câu lệnh này chỉ có thể được sử dụng bên trong các vòng lặp for, while và do. Việc thực thi continue bên trong for dẫn đến việc tính toán tiếp theo của biểu thức trong tiêu đề vòng lặp (tăng/giảm biến vòng lặp), sau đó điều kiện tiếp tục vòng lặp được kiểm tra. Việc thực thi continue bên trong while hoặc do dẫn đến việc kiểm tra ngay lập tức điều kiện trong tiêu đề vòng lặp.
Câu lệnh bao gồm từ khóa continue và một dấu chấm phẩy:
continue;Nó thường được đặt trong một trong các nhánh của câu lệnh điều kiện if/else hoặc switch.
Ví dụ, chúng ta có thể tạo một bảng nhân với các khoảng trống: khi tích của hai chỉ số là số lẻ, phần tử mảng tương ứng sẽ vẫn là số không (StmtJumpContinue.mq5).
int a[10][10] = {0};
for(int i = 0; i < 10; ++i)
{
for(int j = 0; j < 10; ++j)
{
if((j * i) % 2 == 1)
continue;
a[i][j] = (i + 1) * (j + 1);
}
}
ArrayPrint(a);2
3
4
5
6
7
8
9
10
11
Và đây là cách bạn có thể tính tổng các phần tử dương của một mảng.
int b[10] = {1, -2, 3, 4, -5, -6, 7, 8, -9, 10};
int sum = 0;
for(int i = 0; i < 10; ++i)
{
if(b[i] < 0) continue;
sum += b[i];
}
Print(sum); // 332
3
4
5
6
7
8
Lưu ý rằng vòng lặp tương tự có thể được viết lại mà không cần continue nhưng với mức độ lồng ghép của các khối mã lớn hơn:
for(int i = 0; i < 10; ++i)
{
if(b[i] >= 0)
{
sum += b[i];
}
}2
3
4
5
6
7
Do đó, toán tử continue thường được sử dụng để đơn giản hóa định dạng mã (đặc biệt nếu có nhiều điều kiện cần bỏ qua). Tuy nhiên, việc chọn một trong hai cách tiếp cận là vấn đề của sở thích cá nhân.
