今天,我們一起來學習Arduino的循環(huán),編程語言中提供了各種各樣的控制結(jié)構(gòu),可以實現(xiàn)更多更復雜的控制,循環(huán)語句就是其中一種,它允許我們多次執(zhí)行一個或一組語句,下圖是大多數(shù)編程語言中循環(huán)語句的一般形式:

C語言中提供了以下類型的循環(huán)語句來處理循環(huán)請求。
while 循環(huán)
while 循環(huán)的執(zhí)行順序非常簡單,它是一個頂部驅(qū)動的循環(huán),它的格式是:
while (表達式) { 語句; }
當表達式為真,則執(zhí)行下面的語句;語句執(zhí)行完之后再判斷表達式是否為真,如果為真,再次執(zhí)行下面的語句;然后再判斷表達式是否為真……就這樣一直循環(huán)下去,直到表達式為假,跳出循環(huán)。這個就是 while 的執(zhí)行順序。
do…while 循環(huán)
do…while 是一種底部驅(qū)動的循環(huán),它的結(jié)構(gòu)如下:
do { 語句; } while (表達式);
在表達式被執(zhí)行之前,循環(huán)體語句首先被執(zhí)行一次。與 while 和 for 循環(huán)不同,do…while 循環(huán)會確保循環(huán)體語句至少執(zhí)行一次。如果控制表達式的值為 true,那么另一次循環(huán)就會繼續(xù);如果是 false,則循環(huán)結(jié)束。
for 循環(huán)
和 while 一樣,for 循環(huán)也是一個頂部驅(qū)動的循環(huán),但是它包含了更多的循環(huán)邏輯,每個for循環(huán)最多有三個表達式,如下所示:
for ( 表達式1; 表達式2; 表達式3) { 語句 }
在一個典型的 for 循環(huán)中,在循環(huán)體頂部,先后執(zhí)行下述動作:
(1) 表達式 1:初始化,只執(zhí)行一次。在計算表達式2之前,先計算一次表達式 1,以進行必要的初始化,后面不再計算它。
(2) 表達式 2:控制表達式,每輪循環(huán)前都要計算控制表達式,以判斷是否需要繼續(xù)本輪循環(huán)。當控制表達式的結(jié)果為 false,結(jié)束循環(huán)。
(3) 表達式 3:調(diào)節(jié)器,指計數(shù)器的自增或自減,在每輪循環(huán)結(jié)束后且表達式 2 計算前執(zhí)行。即,先運行調(diào)節(jié)器,再執(zhí)行表達式 2,以此進行循環(huán)判斷。
例如:
for(counter = 2;counter <= 9;counter++) { //語句將被執(zhí)行10次 }
嵌套循環(huán)
C語言允許在一個循環(huán)中使用另一個循環(huán)。下面的例子說明了這個概念。
for ( 初始化 ;控制表達式; 調(diào)節(jié)器增量或減量 ) { // 語句塊 for ( 初始化 ;控制表達式; 調(diào)節(jié)器增量或減量 ) { // 語句塊 } }
實際運用:
for(counter = 0;counter <= 9;counter++) { // 語句塊將執(zhí)行10次 for(i = 0;i <= 99;i++) { // 語句塊將執(zhí)行100次 } }
無限循環(huán)
無限循環(huán)也被稱為死循環(huán),它是一個沒有終止條件的循環(huán),所以這個循環(huán)會無限的執(zhí)行下去。語法如下:
for循環(huán)-無限循環(huán)
for (;;) { // 語句塊 }
while循環(huán)-無限循環(huán)
while(1) { // 語句塊 }
do…while循環(huán)-無限循環(huán)
do { 語句塊; } while(1);
也就是說,在for循環(huán)中如果設(shè)置初始化、控制表達式和 調(diào)節(jié)器,它將進入無限循環(huán);在while循環(huán)和do…while循環(huán),中如果判斷表達式不為 false,它也將無限循環(huán)下去。
寫在最后,初學者編程時,if、else、for、while、do 后面的執(zhí)行語句不論有多少行,就算只有一行也要加“{}” 。