Control Structure
Trong Arduino (và C/C++ nói chung), Control Structures (Cấu trúc điều khiển) là các câu lệnh cho phép bạn điều khiển luồng thực thi của chương trình. Dưới đây là mô tả và ví dụ cho các cấu trúc điều khiển phổ biến:
1. break
- Mô tả: Dùng để thoát ra khỏi một vòng lặp hoặc câu lệnh
switch
. Khibreak
được gặp, vòng lặp hoặc câu lệnhswitch
sẽ kết thúc ngay lập tức. - Cú pháp:
break;
- Ví dụ:
for (int i = 0; i < 10; i++) { if (i == 5) { break; // Thoát khỏi vòng lặp khi i bằng 5 } }
2. continue
- Mô tả: Dùng để bỏ qua phần còn lại của một vòng lặp hiện tại và chuyển đến vòng lặp tiếp theo.
continue
chỉ có tác dụng trong các vòng lặp nhưfor
,while
, vàdo...while
. - Cú pháp:
continue;
- Ví dụ:
for (int i = 0; i < 10; i++) { if (i == 5) { continue; // Bỏ qua khi i bằng 5, vòng lặp sẽ tiếp tục } }
3. do...while
- Mô tả: Đây là một vòng lặp kiểm tra điều kiện sau khi thực hiện mã ít nhất một lần. Điều kiện được kiểm tra sau khi mỗi vòng lặp.
- Cú pháp:
do { // Thực hiện các câu lệnh } while (condition);
- Ví dụ:
int i = 0; do { i++; } while (i < 5); // Vòng lặp sẽ thực hiện ít nhất một lần
4. else
- Mô tả: Được sử dụng kết hợp với câu lệnh
if
để chỉ định một khối mã được thực thi nếu điều kiện trongif
không đúng. - Cú pháp:
if (condition) { // Thực hiện khi điều kiện đúng } else { // Thực hiện khi điều kiện sai }
- Ví dụ:
int a = 5; if (a > 10) { // Không thực thi } else { // Thực thi vì a không lớn hơn 10 }
5. for
- Mô tả: Là vòng lặp lặp lại một số lần nhất định. Cấu trúc của vòng lặp
for
bao gồm ba phần: khởi tạo, điều kiện kiểm tra, và thay đổi biến lặp lại. - Cú pháp:
for (initialization; condition; increment) { // Thực hiện mã khi điều kiện đúng }
- Ví dụ:
for (int i = 0; i < 10; i++) { // Thực hiện mã cho i từ 0 đến 9 }
6. goto
- Mô tả: Dùng để nhảy đến một nhãn trong chương trình. Mặc dù có thể sử dụng, nhưng
goto
thường bị tránh vì nó làm cho mã trở nên khó hiểu và khó bảo trì. - Cú pháp:
goto label;
- Ví dụ:
int i = 0; start: i++; if (i < 5) goto start; // Lặp lại cho đến khi i >= 5
7. if
- Mô tả: Câu lệnh điều kiện kiểm tra một điều kiện và thực thi mã nếu điều kiện đó đúng.
- Cú pháp:
if (condition) { // Thực hiện khi điều kiện đúng }
- Ví dụ:
int a = 5; if (a > 3) { // Thực hiện vì a lớn hơn 3 }
8. return
- Mô tả: Dùng để trả giá trị từ một hàm và kết thúc thực thi của hàm đó. Nếu hàm không trả giá trị, chỉ cần dùng
return
mà không cần giá trị. - Cú pháp:
return value; // Trả về giá trị và kết thúc hàm
- Ví dụ:
int add(int a, int b) { return a + b; // Trả về tổng của a và b }
9. switch...case
- Mô tả: Câu lệnh
switch
kiểm tra một giá trị đối chiếu với các giá trịcase
khác nhau và thực thi khối mã tương ứng. Nếu không có giá trị nào khớp, câu lệnhdefault
sẽ được thực thi. - Cú pháp:
switch (expression) { case value1: // Thực hiện nếu expression == value1 break; case value2: // Thực hiện nếu expression == value2 break; default: // Thực hiện nếu không có giá trị nào khớp }
- Ví dụ:
int x = 2; switch (x) { case 1: // Không thực thi break; case 2: // Thực thi break; default: // Không thực thi }
10. while
- Mô tả: Vòng lặp
while
thực thi một khối mã trong khi điều kiện là đúng. Kiểm tra điều kiện trước mỗi lần thực hiện vòng lặp. - Cú pháp:
while (condition) { // Thực hiện khi điều kiện đúng }
- Ví dụ:
int i = 0; while (i < 5) { i++; // Lặp lại khi i < 5 }
Tóm tắt các cấu trúc điều khiển trong Arduino:
Cấu trúc | Mô tả | Ví dụ |
---|---|---|
break |
Thoát khỏi vòng lặp hoặc switch |
break; |
continue |
Bỏ qua vòng lặp hiện tại, tiếp tục vòng lặp tiếp theo | continue; |
do...while |
Vòng lặp kiểm tra điều kiện sau mỗi lần lặp | do { ... } while (condition); |
else |
Thực thi nếu điều kiện if sai |
else { ... } |
for |
Vòng lặp xác định số lần thực hiện | for (int i = 0; i < 10; i++) { ... } |
goto |
Nhảy đến một nhãn trong chương trình | goto label; |
if |
Kiểm tra điều kiện | if (condition) { ... } |
return |
Trả về giá trị từ một hàm | return value; |
switch...case |
Kiểm tra giá trị với các case khác nhau | switch (x) { case 1: ... } |
while |
Vòng lặp kiểm tra điều kiện trước khi thực hiện | while (condition) { ... } |