For
for語(yǔ)句
描述
for語(yǔ)句用于重復(fù)執(zhí)行被花括號(hào)包圍的語(yǔ)句塊。一個(gè)增量計(jì)數(shù)器通常被用來(lái)遞增和終止循環(huán)。for語(yǔ)句對(duì)于任何需要重復(fù)的操作是非常有用的。常常用于與數(shù)組聯(lián)合使用以收集數(shù)據(jù)/引腳。for循環(huán)的頭部有三個(gè)部分:
for (初始化部分; 條件判斷部分; 數(shù)據(jù)遞增部分) { //語(yǔ)句塊 。。。 }
初始化部分被第一個(gè)執(zhí)行,且只執(zhí)行一次。每次通過(guò)這個(gè)循環(huán),條件判斷部分將被測(cè)試;如果為真,語(yǔ)句塊和數(shù)據(jù)遞增部分就會(huì)被執(zhí)行,然后條件判斷部分就會(huì)被再次測(cè)試,當(dāng)條件測(cè)試為假時(shí),結(jié)束循環(huán)。
示例:
//使用一個(gè)PWM引腳使LED燈閃爍 int PWMpin = 10; // LED在10號(hào)引腳串聯(lián)一個(gè)470歐姆的電阻 void setup() { //這里無(wú)需設(shè)置 } void loop() { for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i); delay(10); } }
編碼提示:
C中的for循環(huán)比在其它計(jì)算機(jī)語(yǔ)言中發(fā)現(xiàn)的for循環(huán)要靈活的多,包括BASIC。三個(gè)頭元素中的任何一個(gè)或全部可能被省略,盡管分號(hào)是必須的。而且初始化部分、條件判斷部分和數(shù)據(jù)遞增部分可以是任何合法的使用任意變量的C語(yǔ)句。且可以使用任何數(shù)據(jù)類(lèi)型包括floats。這些不常用的類(lèi)型用于語(yǔ)句段也許可以為一些罕見(jiàn)的編程問(wèn)題提供解決方案。
例如,在遞增部分中使用一個(gè)乘法將形成對(duì)數(shù)級(jí)增長(zhǎng):
for(int x = 2; x < 100; x = x * 1.5){ println(x); }
輸出: 2,3,4,6,9,13,19,28,42,63,94
另一個(gè)例子,在一個(gè)for循環(huán)中使一個(gè)LED燈漸漸地變亮和變暗:
void loop() { int x = 1; for (int i = 0; i > -1; i = i + x){ analogWrite(PWMpin, i); if (i == 255) x = -1; // 在峰值切換方向 delay(10); } }