For

出自YFRobotwiki
在2015年8月18日 (二) 22:17由Admin對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳轉到: 導覽搜尋

描述


for 語句是用於重複執行在大括弧內的一段代碼。通常使用一個增量計數器來增加計數和終止循環。for語句用於重複性操作非常實用,經常和數組結合被用於操作數據或引腳。


for循環語句開頭有3個部分:

for (initialization/初始化; condition/条件判断; increment/增量计数) {

//statement(s);
//执行语句

}


ForLoopIllustrated.png


初始化只在開始執行一次。每次執行一次循環,都會進行一次條件判斷;如果為真,則執行括弧內語句並增量計數,然後再次條件判斷。當條件判斷為假時,終止循環。


示例


// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 470 ohm resistor on pin 10

void setup()
{
  // no setup needed
}

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


編碼技巧


C語言中 for 循環語句 比其他計算機語言中的for語句 更加靈活,其中包括 BASIC。除了分號以外,任何其他3個部分(initialization/初始化、condition/條件判斷、increment/增量計數)都可以省略。初始化、條件判斷、增量計數可以是任何無關變數的有效C語句,或使用任何C數據類型包括 float。這些各種類型不尋常的for語句可能會解決一些罕見的編程問題。

例如,使用乘法的增量將生成一個等比數列:

for(int x = 2; x < 100; x = x * 1.5){
   println(x);
}

生成: 2,3,4,6,9,13,19,28,42,63,94

另一個示例,使用for循環 使 LED 產生漸亮漸滅的效果:

void loop()
{
   int x = 1;
   for (int i = 0; i > -1; i = i + x){
      analogWrite(PWMpin, i);
      if (i == 255) x = -1;             // switch direction at peak
      delay(10);
   } 
}




返回Arduino語法參考列表

更多建議和問題歡迎反饋至 YFRobot論壇