For

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索

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);
   } 
}