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. Khi break được gặp, vòng lặp hoặc câu lệnh switch 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 trong if 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ệnh default 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) { ... }