Câu lệnh cấu trúc For
Giới thiệu hàm for:
Hàm for có chức năng làm một vòng lặp. Vậy vòng lặp là gì? Hãy hiểu một cách đơn giản, nó làm đi làm lại một công việc có một tính chất chung nào đó. Chẳng hạn, bạn bật tắt một con LED thì dùng digitalWrite xuất HIGH delay rồi lại LOW rồi lại delay. Nhưng nếu bạn muốn làm nhiều hơn 1 con LED thì mọi đoạn code của bạn sẽ dài ra (không đẹp và khi chỉnh sửa thì chẳng lẻ ngồi sửa lại từng dòng?
Với 1 con led, bạn lập trình như thế này:
digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);
Với 10 con led, nếu bạn không dùng for, đoạn code nó sẽ dài như thế này:
digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);
digitalWrite(led2,HIGH);
delay(1000);
digitalWrite(led2,LOW);
delay(1000);
...
digitalWrite(led10,HIGH);
delay(1000);
digitalWrite(led10,LOW);
delay(1000);
Bây giờ chúng ta hãy lấy một ví dụ đơn giản khác:
Tôi muốn xuất 10 chữ số (từ 1 - 10) ra Serial. Và việt đó thực hiện như sau
Nếu bạn chưa đọc bài này và cũng chưa biết kiến thức về for, bạn sẽ lập trình như sau nếu bạn không biết câu lệnh for:
void setup() {
Serial.begin(9600);
Serial.println(1);
Serial.println(2);
Serial.println(3);
Serial.println(4);
Serial.println(5);
Serial.println(6);
Serial.println(7);
Serial.println(8);
Serial.println(9);
Serial.println(10);
}
void loop() {
// không làm gì;
}
Cấu trúc lệnh for:
Theo quan điểm của tôi, nếu bạn chưa biết về vòng lặp hoặc hàm for, để hiểu được hàm for, bạn cần nắm được 4 phần:
- Hàm for là một vòng lặp có giới hạn - nghĩa là chắc chắn nó sẽ kết thúc (không sớm thi muộn).
- Nó sẽ bắt đầu từ một vị trí xác định và đi đến một vị trí kết thúc.
- Cứ mỗi bước xong, nó lại thực hiện một đoạn lệnh
- Sau đó, nó lại bước đi tiếp, nó có thể bước 1 bước hoặc nhiều bước, nhưng không được thay đổi theo thời gian.
Theo ví dụ trên, ta có đoạn code sử dụng hàm for như sau:
for (i = 1;i<=10;i = i + 1) {
Serial.println(i);
}
Gồm có 2 lệnh for là tiến và for lùi:
- For tiến (xuất phát từ một vị trí nhỏ chạy đến vị trí lớn hơn) <vị trí xuất phát> bé hơn <vị trí kết thúc>
- For lùi (xuất phát từ một vị trí lớn chạy về vị trí nhỏ hơn) <vị trí xuất phát> lớn hơn <vị trí kết thúc>
Và khi đã hiểu được một cách sâu sắc thì đây là cú pháp chính của hàm For:
for (<biến chạy> = <start>;<điều kiện>;<bước>) {
//lệnh
}
Một số lệnh cấu trúc và cú pháp khác:
if...else, switch/case, for, while, break, continue, return, goto, ";", "//", "{}", "/* */", #define, #include.