For

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

for語句
描述
for語句用于重復(fù)執(zhí)行被花括號(hào)包圍的語句塊。一個(gè)增量計(jì)數(shù)器通常被用來遞增和終止循環(huán)。for語句對(duì)于任何需要重復(fù)的操作是非常有用的。常常用于與數(shù)組聯(lián)合使用以收集數(shù)據(jù)/引腳。for循環(huán)的頭部有三個(gè)部分:

for (初始化部分; 條件判斷部分; 數(shù)據(jù)遞增部分) {
//語句塊
。。。
}

初始化部分被第一個(gè)執(zhí)行,且只執(zhí)行一次。每次通過這個(gè)循環(huán),條件判斷部分將被測(cè)試;如果為真,語句塊和數(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()
{
  //這里無需設(shè)置
}

void loop()
{
   for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   } 
}

編碼提示:
C中的for循環(huán)比在其它計(jì)算機(jī)語言中發(fā)現(xiàn)的for循環(huán)要靈活的多,包括BASIC。三個(gè)頭元素中的任何一個(gè)或全部可能被省略,盡管分號(hào)是必須的。而且初始化部分、條件判斷部分和數(shù)據(jù)遞增部分可以是任何合法的使用任意變量的C語句。且可以使用任何數(shù)據(jù)類型包括floats。這些不常用的類型用于語句段也許可以為一些罕見的編程問題提供解決方案。

例如,在遞增部分中使用一個(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);
   } 
}