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); // 33
2
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.